我如何优化我的网站缓慢的数据连接

How do I optimize my website for slow data connections?

本文关键字:缓慢 网站 数据 连接 我的 何优化 优化      更新时间:2023-09-26

这里的解决方案运行良好,但它们相当劳动密集型。对于那些希望在旧的asp.net解决方案上执行类似增强功能的人,我强烈建议将项目切换到MVC,只是为了利用脚本和样式捆绑。aspx文件在MVC项目中按预期工作。


我要开始为我们的一个产品做一些性能改进。我们的用户使用无线电连接到网络,速度非常慢。应用程序中的主要瓶颈是网络和数据库。我将着重于减少应用程序的网络占用。

我将从几个"快速胜利"开始,然后再开始分解UpdatePanels,删除不必要的内容以及我能想到的任何其他内容。现在我有一些东西我想我已经准备好实现了
这些包括

  • 使用This
  • 最小化和合并css
  • 与上面相同的最小化和合并js
  • 从发送给客户端的html中删除多余的空白。使用这个

编辑:资产缩小和空白空间清理工具一起工作得很好。

然而,我有一些事情我不确定我该如何解决。

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

  2. 是否有可能将微软资源与我的javascript组合成单个js文件?

  3. 401错误,在fiddler中,我可以看到我的第一次点击到网站总是给出401错误,紧接着是正常的200。另外,其他资源在第一次呼叫时也会随机获得401。是否需要配置某种IIS设置来删除此不需要的调用?

  4. aspx文件中的Javascript。不幸的是,我们有很多的js在我们的aspx文件,以及大量的javascript得到渲染使用ScriptManager.RegisterStartupScript在我们的代码背后。我该如何在aspx标记的<script>标签内缩小javascript ?

  5. Favicon,可以禁用吗?如果不是,那么下一个最好的选择是什么?

  1. Mads Kristensen的组合器效果很好。然而,我发现有一些页面的问题,包括14+ axd引用产生一个404.15错误(查询字符串太长,即只有错误)我的解决方案是gzip和base64编码查询字符串。

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

  3. 我启用了匿名认证。

  4. 没有进步。

  5. 我发现把favicon.ico放在根目录是必要的。我想这可能是因为我的应用程序的设计方式。

合并微软脚本资源:查看我的ContentGator项目,我用它来拦截WebResource(和其他脚本和css)文件的请求并将它们合并在一起。我已经有几年没有更新它了,所以我不能说它开箱即用的效果有多好,你至少应该能够重用一些代码。我不记得添加了缩小功能,但是你应该可以很容易地添加它。我认为它也有钩子到RegisterStartupScript,或替代它,在那里你应该能够在缩小连接。

Favicon,据我所知,不能被禁用,因为它是浏览器默认请求的。如果您真的不想要它,您可能只需要放置一个1x1像素的ico,这样您就不会提供404,而随后的请求将导致304。为这个和所有其他静态资源使用CDN也不会有什么坏处。

此外,查看http://developer.yahoo.com/yslow/获得其他更一般的web优化技巧。

我脑子里想到的其他事情:

  • 在可能的情况下为图像使用精灵
  • 输出缓存

1和2)优化。axd: http://madskristensen.net/post/Optimize-WebResourceaxd-and-ScriptResourceaxd.aspx 编辑死链接压缩脚本资源。zip谷歌缓存的文章

3) HTTP 401未授权:您配置的身份验证机制正在执行此操作。如果您启用了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:你要么在你的页面上有一个链接标签,引用REL="快捷图标",要么你有一个" Favicon .ico"文件位于你的网站的根。如果你没有链接标签,那么浏览器会自动检查你网站根目录下的favicon.ico。

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

IIS6中压缩

IIS7压缩

From gtmetrix.com:

    避免错误请求
  • 避免使用CSS @import
  • 避免CSS表达式(已弃用)
  • 避免document . write
  • 合并外部CSS
  • 合并外部JavaScript
  • 使用CSS精灵组合图像
  • 延迟加载JavaScript
  • 延迟JavaScript解析
  • 启用gzip压缩
  • 使维生
  • 内联小CSS
  • 内联小JavaScript
  • 利用浏览器缓存
  • 利用代理缓存(已弃用)
  • 使登陆页重定向可缓存
  • 贬低CSS
  • 贬低HTML
  • 贬低JavaScript
  • 最小化cookie大小(已弃用)
  • 最小化DNS查找
  • 最小化重定向
  • 最小化请求大小
  • <
  • 优化图像/gh>
  • 优化样式和脚本的顺序
  • 跨主机名并行下载
  • 优先选择异步资源
  • 在文档头部添加CSS
  • 从静态资源中删除查询字符串
  • 删除未使用的CSS
  • 从一致的URL提供资源
  • 提供缩放图像
  • 从无cookie域提供静态内容
  • 指定缓存验证器
  • 提前指定字符集
  • 指定一个可变:接受编码头
  • 指定图像尺寸
  • 使用高效的CSS选择器

您可以使用gtmetrix工具,ySlow或google的Page Speed来查看所有这些对它的影响,但是这个gtmetrix工具通常很棒,并且为您组合了功能,以及做一些自动生成,为您提供改进版本的CSS文件等

http://wiki.asp.net/page.aspx/80/aspnet-optimization/

有一组关于各种元素的资源,你可以/应该在asp.net上制作更快的web应用程序!Njoy:)

我认为无论用户连接速度如何,网站都应该优化为最佳性能。

网站性能/速度影响用户体验,另一方面影响整体网站目标/转换,因此创建快速响应的网站和加速现有的网站应该是每个web开发人员/前端工程师等的主要目标之一。

无论如何,这是两个很好的资源,来自两个巨人:http://developer.yahoo.com/performance/rules.htmlhttp://code.google.com/speed/

Best

您是否启用了静态资源(如站点图像和样式)的客户端缓存?他们不会帮助第一个页面的浏览量,但会加快事情在随后的视图。

Favicon不能被禁用,但在现代浏览器中可以通过使用data:url来消除请求本身。例如,这将导致页面在不发送任何请求的情况下具有斜杠点的图标:

<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" />

请记住,启用客户端缓存的图标应该节省更多的字节比嵌入它在你发送的每个页面。