合并网页中的多个script引用实现思路及代码
时间:2023-06-29 09:02:19
为了更好的进行封装,每个实现不同功能的js代码应该有自己的js文件,这样如果一个网页中引用了多个js文件,如下
<script type="text/javascript" src="limit.js"></script>
<script type="text/javascript" src="select.js"></script>
<script type="text/javascript" src="rating.js"></script>
这样网页会向服务器发送3个请求,请求3个js文件,其实完全没有必要发这么多的请求,一个足矣,下面就来介绍如何用Handler实现
新建一个HttpHandler
public class Handler1 : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{//原文链接:blog.csdn.net/bluceyoung
string[] js = context.Request.Url.LocalPath.Substring(1, context.Request.Url.LocalPath.Length - 5).Split('.');
StringBuilder sb = new StringBuilder();
foreach (string j in js)
{
sb.Append(ReadFile(j+".js"));
}
context.Response.Write(CompressStr(sb));
}
private string ReadFile(string fileName)
{
string directory = @"D:\SRC\bluceyoung\";
if (!File.Exists(directory + fileName))
{
return "";
}
string result;
using (FileStream fs = new FileStream(directory + fileName, FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs))
{
result = sr.ReadToEnd();
}
}
return result;
}
private string CompressStr(StringBuilder sb)
{
while (true)
{
int length = sb.Length;
sb.Replace(" ", " ");
if (length == sb.Length)
break;
}
sb.Replace("\r\n", "").Replace("\t", "").Replace("; ", ";").Replace(" }", "}").Replace("} ", "}").Replace(" ;", ";").Replace(" {", "{").Replace("{ ", "{");
return sb.ToString();
}
public bool IsReusable
{
get
{
return false;
}
}
}
配置文件中添加节点
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add path="*.jsx" verb="*" type="BluceYoung.Handler1"/>
</httpHandlers><!--原文博客:blog.csdn.net/bluceyoung -->
</system.web>
</configuration>
页面调用
<script src="limit.select.rating.jsx" type="text/javascript"></script>
就这样,一个script引用就完成了多个js文件的请求,并且对文件进行了压缩处理
标签:合并,script引用
0
投稿
猜你喜欢
MySQL DDL 引发的同步延迟该如何解决
2024-01-26 19:44:00
Python松散正则表达式用法分析
2021-03-12 02:51:36
Python中文件遍历的两种方法
2022-01-28 20:34:03
python自动化测试通过日志3分钟定位bug
2021-09-12 10:11:19
tensorflow 动态获取 BatchSzie 的大小实例
2023-03-05 16:56:48
Go语言参数传递是传值还是传引用
2024-02-20 02:32:34
Python爬虫入门案例之回车桌面壁纸网美女图片采集
2022-12-25 19:40:57
Asp用正则表达式获取文章中的所有图片地址
2010-07-17 13:11:00
模式化窗口
2009-06-18 18:41:00
Python程序打包工具py2exe和PyInstaller详解
2021-04-17 05:04:12
Vue之插件详解
2024-04-30 10:44:57
perl 删除数组元素的几种方法小结
2023-07-14 18:31:11
Golang中如何对MySQL进行操作详解
2024-01-28 23:16:53
MySQL CHAR和VARCHAR存储、读取时的差别
2024-01-22 20:54:58
python基础入门学习笔记(Python环境搭建)
2022-01-12 20:27:48
Thinkphp微信公众号支付接口
2024-05-11 09:16:51
老生常谈 js中this的指向
2024-04-23 09:29:31
python自动化脚本安装指定版本python环境详解
2022-08-14 11:31:46
Python叠加矩形框图层2种方法及效果
2022-10-09 15:59:53
SELECT...INTO的具体用法
2024-01-29 02:20:43