Javascript 我如何优化我的网站,以降低数据连接速度? 这里的解决方案工作得很好,但它们是相当劳动密集型的。对于任何希望在旧asp.net解决方案上执行类似增强的人,我强烈建议将项目切换到MVC,以充分利用脚本和样式绑定。aspx文件在MVC项目中按预期工作。

Javascript 我如何优化我的网站,以降低数据连接速度? 这里的解决方案工作得很好,但它们是相当劳动密集型的。对于任何希望在旧asp.net解决方案上执行类似增强的人,我强烈建议将项目切换到MVC,以充分利用脚本和样式绑定。aspx文件在MVC项目中按预期工作。,javascript,asp.net,optimization,minify,Javascript,Asp.net,Optimization,Minify,我即将开始为我们的一款产品执行一些性能增强。 我们的用户使用非常慢的无线电连接网络。应用程序中的主要瓶颈是网络和数据库。我将把重点放在减少应用程序的网络占用上 我将从一些“快速胜利”开始,然后再深入到撕开UpdatePanel、删除不必要的内容以及我能想到的任何其他细节。 现在我有几件事我想我已经准备好实施了 其中包括 缩小并合并css 缩小并合并js 删除发送到客户端的html中多余的空白 编辑:资产缩小和空白区域清理工具配合得很好。 然而,我有一些事情,我不知道我将如何解决 某些micr

我即将开始为我们的一款产品执行一些性能增强。 我们的用户使用非常慢的无线电连接网络。应用程序中的主要瓶颈是网络和数据库。我将把重点放在减少应用程序的网络占用上

我将从一些“快速胜利”开始,然后再深入到撕开UpdatePanel、删除不必要的内容以及我能想到的任何其他细节。 现在我有几件事我想我已经准备好实施了
其中包括

  • 缩小并合并css
  • 缩小并合并js
  • 删除发送到客户端的html中多余的空白
编辑:资产缩小和空白区域清理工具配合得很好。

然而,我有一些事情,我不知道我将如何解决

  • 某些microsoft资源(
    WebResource.axd?d=blahblah
    ScriptResource.axd?d=blahblah
    )未缩小。和其他一些取决于页面。不过,微软的Ajax还不错。如果这些文件没有自动缩小,我如何手动缩小它们?我是不是错过了一个场景

  • 是否可以将microsoft资源与我的javascript组合成一个js文件

  • 401错误,在fiddler中,我可以看到我第一次访问网站时总是出现401错误,紧接着是正常的200错误。另外,其他资源在第一次调用时也会随机使用401。这是需要配置的某种IIS设置,以删除此不需要的调用吗

  • aspx文件中的Javascript。不幸的是,在我们的aspx文件中有很多js,在我们的代码后面还有很多javascript,它们是使用
    ScriptManager.RegisterStartupScript
    呈现的。如何在aspx标记的
    标记中缩小javascript

  • 法维康,这会被诅咒吗?如果不是,下一个最好的是什么
  • 更新

  • Mads Kristensen的组合器工作得很好。然而,我发现一些包含14+axd引用的页面存在问题,会产生404.15错误(查询字符串太长,即只有bug)。我的解决方案是对查询字符串进行gzip和base64编码

  • 我发现将我的js include与.axd文件结合起来是一项徒劳的任务,因为每个页面的.axd文件都不同。将静态js文件分开会产生一个额外的服务请求,但它将保留在客户端缓存中,而不是让客户端将这些脚本作为组合js axd文件的一部分重新下载

  • 我启用了匿名身份验证。没有问题了

  • 没有进展

  • 我发现将favicon.ico置于根目录是必要的。我认为这可能只是因为我的应用程序的设计方式


  • 您也应该考虑在IIS中启用压缩。


    合并Microsoft脚本资源:查看我的项目,我用它拦截对WebResource(以及其他脚本和css)文件的请求,并将它们合并在一起。我已经有几年没有更新过它了,所以我不能说它在开箱即用的情况如何,你至少应该能够重用一些代码。我想我不记得添加了缩小,但您应该能够非常轻松地添加它。我认为它也有到RegisterStartupScript的钩子,或者它的替代品,在这里您应该能够再次连接到缩小

    据我所知,Favicon无法禁用,因为默认情况下它是由浏览器请求的。如果您真的不想要它,您可能只需要安装一个1x1像素的ico,这样您就不会为404提供服务,随后的请求将导致304。对于这个和所有其他静态资源,使用CDN也没有坏处

    此外,请查看其他更通用的web优化技巧

    我脑子里想的其他事情:

    • 在可能的情况下用于图像
      • 1和2)优化。axd:编辑死链接

        3) HTTP 401未经授权:您配置的身份验证机制正在执行此操作。如果已启用Windows身份验证但未使用它

        4) 嵌入式JS:MS-AJAX浏览器

        对于与标记混合在一起的JS,您可以做的不多。您可以使用RegEx制作自己的实用程序,从ASPX中解析它,并创建一个每页包含所有内容的文件,然后缩小该文件并插入1脚本引用。用于捕获脚本标记中的所有内容的正则表达式将变得相当复杂,因为有一些特殊情况,如

        <script type="text/javascript">
        document.write("<script>Dynamica, RegEx don't stop here -></script>");
        </script>
        
        
        编写(“Dynamica,RegEx不要停在这里->”;
        
        5) Favicon:您的页面上有一个链接标签,用REL=“快捷方式图标”引用它,或者您的网站根目录中有一个“Favicon.ico”文件。如果您没有链接标签,浏览器将自动检查您网站根目录下的favicon.ico。

        有大量关于各种元素的资源,您可以/应该在asp.net上创建speedster web应用程序!Njoy:)

        来自:

        • 避免不好的请求
        • 避免CSS@import
        • 避免使用CSS表达式(已弃用)
        • 避免使用document.write
        • 合并外部CSS
        • 组合外部JavaScript
        • 使用CSS精灵组合图像
        • 推迟
          <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAB4eE0AX18OAP///wBeXisAYWETANPTxACrq4cAgYEaAEhJEgBKSiYAkJF3AL29pgBiYjAAVFQQADQ0CgBCQg4AWe7u7u7u7pWe7u7u7u7u6e7u7u7u7u7u7/ZVr/+rz/7v+iIp8CJf/v//UibwIl////8CIj+mz//4iIUiuIiIj/iIjCIgiIiPjd3dsiXd3diN3d1CIq3d2I3d3dYiLd3Y0RERFGZsERHUERERERERRDd3d3d3d3dzXERERERERMUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" type="image/x-icon" />