在凡客看到CSS和JS加载均使用.ashx , .ashx 是什么技术?
若单独运行css.ashx,则提示以下信息:
css.ashx、js.ashx:用法:
css.ashx?href=a,b,c
js.ashx?href=a,b,c
同级目录中的不同文件,以方括号括起来
css.ashx?href=[a/a1,a2]意思为连接~/a/a1.css与~/a/a2.css
js.ashx?href=[b/b1,b2]意思为连接~/b/b1.js与~/b/b2.js
混合用法
css.ashx?href=a,[b/b1,b2],c/c1意思为连接~/a.css与~/b/b1.css与~/b/b2.css与~/c/c1.css
未找到文件时的处理:
如果未找到a.css,在最终输出结果中会出现/css combiner 未找到文件~/a.css/
如果未找到a.js,在最终输出结果中会出现//js combiner 未找到文件~/a.js
12/06/2012 10:22:41.266 上午
请问是什么原理? 还是 .net 自身的一个动态加载技术?
回复内容:
若单独运行css.ashx,则提示以下信息:
css.ashx、js.ashx:用法:
css.ashx?href=a,b,c
js.ashx?href=a,b,c
同级目录中的不同文件,以方括号括起来
css.ashx?href=[a/a1,a2]意思为连接~/a/a1.css与~/a/a2.css
js.ashx?href=[b/b1,b2]意思为连接~/b/b1.js与~/b/b2.js
混合用法
css.ashx?href=a,[b/b1,b2],c/c1意思为连接~/a.css与~/b/b1.css与~/b/b2.css与~/c/c1.css
未找到文件时的处理:
如果未找到a.css,在最终输出结果中会出现/css combiner 未找到文件~/a.css/
如果未找到a.js,在最终输出结果中会出现//js combiner 未找到文件~/a.js
12/06/2012 10:22:41.266 上午
请问是什么原理? 还是 .net 自身的一个动态加载技术?
就是个handler页面,看他这么写无非就是服务器组建处理了一下资源文件。
href=[/public/autocomplete.css],[/index/global.css,header-top.css,header-logo.css,header-nav.css,footer.css,indexcontentv10.css]
把多个css一起在后台读出来然后用一次http请求返回到前台。
&v=20130712115604
这个参数应该是为了防止浏览器缓存的问题,特意设置的参数
&compress
看这个参数猜测后台应该是把所有的css读取、拼接然后再压缩返回到前台。
做这些工作可以优化资源文件的网络传输:1.减少http请求次数2.减小css文件体积
tengine可以很好的实现js/css合并
请看这个链接 http://msdn.microsoft.com/zh-cn/library/bb398986(v=vs.100).aspx ,有详细解析。
实际上原来的aspx也会在默认情况下被注册为一个hanlder,ashx和aspx的区别在于aspx为了开发方便添加了很多组件、属性、事件等,而ashx相对底层,因此比较简单,优点就是快速。
实际上凡客这样做是不对的,重复发明轮子,应该采用第三方的框架来实现js和css的打包压缩。
另外asp.net 4.5已经内置了一个这样的框架,有兴趣可以看 http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx 。
其它类似信息