当前位置: 移动技术网 > IT编程>开发语言>.net > 合并网页中的多个script引用实现思路及代码

合并网页中的多个script引用实现思路及代码

2017年12月12日  | 移动技术网IT编程  | 我要评论

襄阳男科,电子商务培训,强国军事网

为了更好的进行封装,每个实现不同功能的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文件的请求,并且对文件进行了压缩处理

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网