场景:我有一个复杂的Asp.net应用程序,通过在HttpModules中以编程方式构造控件集合,为不同的单元提供服务。其中一些控件使用Asp.NET Ajax。
在许多不同的单位中,ScriptResource.axd的平均传输大小为27K。
我有一个只允许3K的天花板。
绝对没有时间用jQuery或手动js函数或诸如此类的方法来改造所有Ajax功能。我们已经有了使用gzip编码的.axd (未压缩的,它更像97k)。它通常是缓存的,但这并不重要:我必须对第一次请求的总传输大小进行严格的、低的、外部施加的限制.标记、脚本、图像&所有这些都总结了一个-la firebug。我一直在避免使用.axds,但实际上没有其他地方可以刮掉字节,而且我还有24k的时间。
有什么想法吗?我沉下去了吗?
可能的方法:我还没有使用Asp.NET 3.5SP1的compositescript功能,但我认为这只会在请求/响应头上保存,而且我甚至不确定标头是否对我不利。
除了一些激进的东西之外,我没有其他的想法,比如创建一个使用反射的响应过滤器&一些字典来确定哪些js函数是实际需要的,并且只会发出这些函数。我可以缓存每个单元的结果列表,因为我的响应时间上限也很低,而且我认为.axds不会从一个请求更改到另一个请求。这可行吗?还有其他的主意吗?...what,如果我给英雄买啤酒的话,有解决办法吗?
发布于 2010-10-30 04:17:57
反思可能是个好主意。此外,寻找很少使用的部件,并找到绕过它的另一种方法,或者在没有该功能的情况下操作。另外,尽可能地压缩Ajax脚本(YUI压缩机对JavaScript很好)。
发布于 2010-10-30 08:35:13
我完全赞同安德鲁的评论。不过,从配置的角度来看,您应该做两件事。
Gzip (您已经做过) Script Mode = Release (它将去掉空白)。
除此之外,还有一个选择..。这就是根本不使用Microsoft库。您可以选择为that化编写自己的库,并且只使用您想要的东西。问题仍然存在.值得这样的痛苦吗?如果是的话,那就去吧。不过,请记住,编写自己的库会带来很大的痛苦,但这并不是说编写起来很困难。真正令人头疼的是维护您所写的内容,在所有可用的平台上测试它,并修复这些错误。retest...and等等..。你知道这个主意了!
https://stackoverflow.com/questions/4057127
复制相似问题