2008-08-14 91 views
24

我有一个支持Ajax.Net的ASP.Net 2.0网站。网站和数据库的托管都与数据库的架构无关。在硬件测试中,我确实控制网站在客户端的硬件上运行良好,但重新加载或更改页面时出现明显的延迟。加速ASP.Net网站或应用程序

我想要做的是让我的应用程序尽可能紧凑和快速,当我提供它。其中一个想法是为所有网站的静态资源设置到期日期,以便在页面加载时不会收回。资源我的意思是图像,链接的样式表和JavaScript源文件。是否有捷径可寻?

还有什么其他方法可以优化.Net网站?

更新: 我已经在网站上运行YSlow,并且我遇到的最困难的区域是正在加载的JavaScript和样式表的数量(23个JS文件和5个样式表)。 Ajax.net和Asp已经插入了所有主要样式表(主样式表)。为什么这么多?

回答

0

您可以根据支持它的客户端打开压缩。看到这篇文章:link text

0

静态资源不应该被重新发送,除非改变。 IIS将发送一个响应代码,告诉浏览器使用缓存版本。

3

默认情况下关闭viewstate,即使是最简单的页面,它也会是夜晚和日间的差异。

1

我认为您真的需要能够从应用程序获取一些实际的PerfMon数据/遥测,同时在生产环境中运行,以便能够就优化的内容做出明智的决定。

作为扔掉的提示,我会确保你的应用程序在你的web.config的“编译”部分部署为发布构建和设置调试=“假”。

5

如果你使用Firefox来测试你的网站,你可能想尝试一个漂亮的Firefox扩展从雅虎!称为YSlow

它会分析您的网页,并为高性能网站提供A-F(A为最佳,F为最差)的各个等级的最佳实践等级。它将帮助你追踪你的网站的元素,你可以优化以获得加速。

1

您似乎开始时假设您的问题是下载大小 - 可能不一定是这种情况。您应该对ASP.NET网站进行一些实验,以确定代码中是否存在导致不当延迟的区域。如果发现下载大小不是您的问题,您需要找到缓存结果的方法(查看输出缓存,这是ASP.NET功能)或优化代码。

在任何情况下 - 在性能问题看时,第一步是总是首先验证你的假设,再决定行动方针。

2

我写了一个关于blog post提高ASP.NET页面的性能这几个月回来。这里有一些快速&简单的方法 -

  • 关闭视图状态
  • 关闭事件验证
  • 实现HTTP的gzip/deflate压缩,以降低响应大小(服务器发回的字节数客户端)
  • 尝试优化/最小化您的数据库调用每个请求
1

你可以开始寻找缓存策略。 CSS(甚至是压缩文件)和图像(甚至是优化文件)等静态文件只需要浏览器下载一次即可。

Scirpt combined for AJAX已被提及,但我没有注意到引用了ScriptReferenceProfiler MS在codeplex上发布的帮助弄清楚要合并的内容。迈克奥蒙德has a good start point on this

另一个提示,如果你正在为你的数据库做很多插入操作,那就是仔细检查你的服务器的磁盘缓存是否打开。举例来说,我有一个数据导入器在运行期间执行了120万次插入。花了4小时,没有缓存就改变了。花了16分钟的时间。

1

使用ASP.NET和Ajax(阿贾克斯的任何一个时,一般的事情库)一起是为了避免对你的Page_Load和Page_Init(及其方法对象)进行大象处理,因为它们将在每个Ajax请求上执行。

当那是说我会认真沟ASP.NET AJAX和使用任何其他 ...

Anthem.NET,AjaxPRO.NET,jQuery的或什么比ASP.NET AJAX否则...

当然我会自己使用Ra-Ajax,因为那是我的项目。但后来我又偏向...

+0

插头插头.... Zzzzzz – redsquare 2008-11-24 14:37:22

相关问题