我即将开始为我们的某个产品执行一些性能增强。 我们的用户使用非常慢的无线电连接到网络。应用程序的主要瓶颈是网络和数据库。我将专注于减少应用程序的网络占用空间。
在开始拆除UpdatePanels,删除不必要的内容以及我能想到的任何其他内容之前,我将首先介绍一些“快速获胜”。 现在我有一些事情我认为我已经准备好实施了 其中包括
编辑:资产缩小和空白区域清理工具可以很好地协同工作。
但是我有一些事情我不确定如何处理。
某些微软资源(WebResource.axd?d=blahblah
和ScriptResource.axd?d=blahblah
)未缩小。 This和This以及其他一些内容取决于页面。 Microsoft.Ajax虽然很好。如果这些文件没有自动缩小,我该如何手动缩小这些文件?我错过了某个地方的设置吗?
是否可以使用我的javascript将微软资源合并到一个js文件中?
401错误,在小提琴手中,我可以看到我第一次点击网站时总会出现401错误,紧接着是正常的200.其他资源也会在第一次调用时随机出现401。是否需要配置某种IIS设置以删除此不需要的呼叫?
aspx文件中的Javascript。不幸的是,我们的aspx文件中有很多js,以及在我们的代码中使用ScriptManager.RegisterStartupScript
渲染的大量javascript。我如何在aspx标记中的<script>
标签内缩小javascript?
更新
Mads Kristensen的合成器很棒。但是我发现有些页面包含14个以上的axd引用会产生404.15错误(查询字符串太长,即只有bug)我的解决方法是gzip和base64编码查询字符串。
我发现将我的js包含在.axd文件中是一项徒劳无功的任务,因为每页的.axd文件都不同。让我的静态js文件单独生成一个额外的服务请求,但它将保持缓存在客户端上,而不是让客户端重新下载这些脚本作为组合的js axd文件的一部分。
我启用了匿名身份验证。没有更多问题。
没有进展。
我发现将favicon.ico放在根部是必要的。我想这可能只是因为我的应用程序的设计方式。
答案 0 :(得分:5)
合并Microsoft脚本资源:查看我用于拦截WebResource(以及其他脚本和css)文件请求的ContentGator项目并将它们合并在一起。我没有在几年内更新它,所以我不能说它开箱即用的程度如何,你至少应该能够重用一些代码。我不认为我记得添加缩小,但你应该能够很容易地添加它。我认为它也可以挂接到RegisterStartupScript,或者替代它,在那里你应该能够连接缩小。
据我所知,Favicon 无法禁用,因为浏览器默认请求它。如果你真的不想要它,你可能只需要提供一个1x1像素的ico,这样你就不会提供404,后续的请求将会产生304.使用CDN就可以了。你的其他静态资源。
此外,请查看http://developer.yahoo.com/yslow/以获取其他更常规的网络优化提示。
我头脑中的其他事情:
答案 1 :(得分:4)
1和2)优化.axd:http://madskristensen.net/post/Optimize-WebResourceaxd-and-ScriptResourceaxd.aspx 编辑死链接 Compress Script Resource .zip Google Cache of the article
3)HTTP 401 Unauthorized:您配置的身份验证机制正在执行此操作。如果您启用了Windows身份验证但未使用它...
4)嵌入式JS:MS AJAX Minifier
http://www.codeproject.com/Articles/81317/Automatically-compress-embedded-JavaScript-resourc
http://stephenwalther.com/blog/archive/2009/10/16/using-the-new-microsoft-ajax-minifier.aspx
对于与你的标记混合的JS,你无能为力。您可以创建自己的实用程序,使用RegEx从ASPX中解析它,并创建一个包含每页所有文件的文件,然后缩小该文件并插入1脚本引用。捕获SCRIPT标签内所有内容的正则表达式最终会变得相当复杂,因为像......这样的极端情况。
<script type="text/javascript">
document.write("<script>Dynamica, RegEx don't stop here -></script>");
</script>
5)Favicon:您的页面上有一个LINK标记,用REL =“快捷图标”引用它,或者您的网站根目录下有一个“favicon.ico”文件。如果您没有LINK标签,浏览器将自动检查您网站根目录中的favicon.ico。
答案 2 :(得分:3)
答案 3 :(得分:1)
来自gtmetrix.com:
你可以使用gtmetrix工具,ySlow或谷歌的页面速度来查看所有这些对它的影响,但是这个gtmetrix工具通常很棒,并且为你组合了各种功能,并且做了一些自动生成,可以帮助你改进版的CSS文件等。
答案 4 :(得分:0)
http://wiki.asp.net/page.aspx/80/aspnet-optimization/
有很多关于各种元素的资源,你可以/应该在asp.net上制作speedster web应用程序! Njoy:)
答案 5 :(得分:0)
我认为无论用户连接速度如何,都应优化网站以获得最佳性能。
网站性能/速度会影响用户体验,另一方面影响整体网站目标/转化,因此创建快速响应的网站并加快现有网站应该是每个Web开发人员/前端工程师等的主要目标之一。 / p>
无论如何,这些是两个巨大的资源,来自两个巨头: http://developer.yahoo.com/performance/rules.html http://code.google.com/speed/
最佳
答案 6 :(得分:0)
您是否为网站图片和样式等静态资源启用了客户端缓存?他们对第一页视图没有帮助,但会在后续视图中加速很多事情。
无法禁用Favicon,但可以使用数据:url在现代浏览器中删除请求本身。例如,这会导致页面具有slashdot的favicon而不发送任何请求:
<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" />
请记住,为favicon启用客户端缓存应该可以节省更多字节,然后将其嵌入到您发送的每个页面中。