代码之家  ›  专栏  ›  技术社区  ›  Paul Smith

减少ScriptResource.axd的激进技术?(以及可选的WebResource.axd)

  •  0
  • Paul Smith  · 技术社区  · 15 年前

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

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

    我的天花板只允许3公里。

    显然没有时间用jQuery、手工滚动的js函数或其他什么来更新所有Ajax功能。我们已经有了带有gzip编码的.axd(未压缩的更像是97k)。它经常被缓存,但这并不重要:我必须对第一个请求的总传输大小设置一个严格的、低的、外部强加的限制。。。标记、脚本、图像都概括为a-la firebug。我一直在避免使用.axd,但实际上没有其他地方可以节省字节,我还有24k要做。

    可能的方法 compositescript 功能,但我认为这只会保存在请求/响应头上,我甚至不确定头是否对我有用。

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Peter C    15 年前

    反思可能是个好主意。另外,寻找很少使用的部件,并找到其他方法绕过它,或者在没有该功能的情况下操作。另外,尽可能压缩Ajax脚本( YUI Compressor

        2
  •  1
  •   Rahul Soni    15 年前

    我完全同意安德鲁的意见。不过,从配置的角度来看,有两件事你应该做。

    Gzip(您已经完成了) 脚本模式=释放(它将去掉空格)。

    除此之外,还有一个选择。。。也就是说根本不使用Microsoft AJAX库。你可以选择为Ajaxification编写自己的库,只使用你想要的东西。仍然存在的问题是。。。这值得痛苦吗?如果是的话,就去做吧。不过,请记住,编写自己的库所带来的许多痛苦并不是说它很难编写。真正让人头疼的是维护你写的东西,在所有可用的平台上测试它,并修复错误。。。重新测试…等等。。。你明白了!