减少ScriptResource.axd的根本技巧? (以及可选的WebResource.axd)

时间:2010-10-30 03:32:41

标签: c# asp.net scriptresource.axd

场景:我有一个复杂的Asp.net应用程序,通过HttpModules中以编程方式构建的控件集合为各个单元提供服务。其中一些控件使用Asp.NET Ajax。

在许多不同的单位中,ScriptResource.axd平均传输大小约为27k。

我有一个只允许〜3k的天花板。

肯定没有时间用jQuery或手动js函数或诸如此类的东西来改进所有Ajax功能。我们已经有了.axd用gzip编码(未压缩它更像97k)。它经常被缓存,但这并不重要:我必须在第一次请求的总传输大小上达到一个硬的,低的,外部强加的限制...标记,脚本,图像&所有人总结了一个萤火虫。我一直在避免使用.axds,但实际上没有任何其他方法可以削减字节数,而且我还有24k可以使用。

有什么想法吗?我沉没了吗?

可能的方法:我还没有使用Asp.NET 3.5 SP1的compositescript功能,但我认为这只会节省请求/响应标头,而我甚至都不会确定标题对我不利。

我没有任何其他想法,除了激进的东西,比如创建一个使用反射和放大器的响应过滤器。一些字典来确定js函数实际上是什么需要,并且只发出那些。我可以缓存每个单元的结果列表,因为我的响应时间上限也很低,我不认为.axds会从一个请求更改为另一个请求。这可行吗?还有其他想法吗? ...如果我用解决方案为英雄买啤酒怎么办?

2 个答案:

答案 0 :(得分:1)

反思可能是一个好主意。此外,寻找很少使用的部件并找到其他方法或在没有该功能的情况下运行。另外,尽可能地压缩Ajax脚本(YUI Compressor适用于JavaScript)。

答案 1 :(得分:1)

我完全是第二个安德鲁的评论。但是,从配置角度来看,您应该做两件事。

Gzip(你已经完成了) 脚本模式=释放(将消除空格)。

除此之外,还有一个选项......那就是根本不使用Microsoft AJAX Library。您可以选择编写自己的Ajaxification库,并仅使用您想要的东西。仍然存在的问题是......值得痛苦吗?如果是的话,那就去吧。但请记住,编写自己的库会带来很多痛苦并不是很难写。真正令人头疼的是保持你所写的东西,在所有可用的平台上进行测试,并修复错误...重新测试......等等......你明白了!