关于ajax:加快ASP.Net网站或应用程序的速度

关于ajax:加快ASP.Net网站或应用程序的速度

Speeding up an ASP.Net Web Site or Application

我有一个启用Ajax.Net的ASP.Net 2.0网站。 网站和数据库的托管以及数据库的架构都无法控制。 在对硬件的测试中,我确实控制了站点的性能,但是在客户端的硬件上,重新加载或更改页面时会有明显的延迟。

我想做的是在交付应用程序时使其尽可能紧凑和快速。 一种想法是为网站的所有静态资源设置失效日期,以使它们不会在页面加载时被调用。 我所说的资源是指图像,链接的样式表和JavaScript源文件。 是否有捷径可寻?

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

更新:
我在该网站上运行过YSlow,受到的打击最大的是所加载的JavaScript和样式表的数量(23个JS文件和5个样式表)。 Ajax.net和Asp已插入除主样式表之外的所有样式。 为什么那么多?


  • .net 3.5 SP1中的脚本合并
  • 快速网站的最佳做法
  • HTTP压缩(gzip)
  • 压缩JS / CSS(不同于http压缩,请最小化javascript)

  • YUI压缩机
  • .NET YUI压缩器
  • 我最好的建议是检查YUI内容。他们有一些很棒的文章谈论CSS精灵之类的东西,并有一些不错的javascript库来帮助减少浏览器发出的请求数量。


    如果您使用Firefox来测试您的网站,则可能要尝试使用Yahoo!提供的漂亮Firefox扩展。称为YSlow。

    它会分析您的网页,并为高性能网站的每种最佳做法提供从A-F(A为最佳,F为最差)的等级。它将帮助您跟踪网站中可以优化以加速的元素。


    默认情况下关闭viewstate,即使是最简单的页面也是如此。


    几个月前,我写了一篇有关提高ASP.NET页面性能的博客文章。以下是一些快速简便的方法-

    • 关闭检视状态
    • 关闭事件验证
    • 实现HTTP gzip / deflate压缩以减小响应大小(服务器必须发送回客户端的字节数)
    • 尝试针对每个请求优化/最小化数据库调用

    一起使用ASP.NET和Ajax(任何Ajax库)时,通常要避免使您的Page_Load和Page_Init(以及与之对应的方法)麻烦,因为它们将在每个Ajax请求上执行。

    这么说的话,我会认真放弃ASP.NET AJAX并使用其他任何东西...

    Anthem.NET,AjaxPRO.NET,jQuery或ASP.NET AJAX以外的任何其他语言...

    当然我会自己使用Ra-Ajax,因为那是我的项目。 但话又说回来我有偏见...


    您可以开始研究缓存策略。诸如CSS(甚至压缩文件)和图像(甚至优化文件)之类的静态文件只需要在一段时间内由浏览器下载一次即可。

    已经提到了针对AJAX的Scirpt合并,但是我没有注意到对ScriptReferenceProfiler MS的引用已在codeplex上发布,以帮助找出要合并的内容。 Mike Ormond在这方面有一个很好的起点。

    如果您要对数据库执行大量INSERT操作,则另一个技巧是再次检查服务器的磁盘缓存是否已打开。举例来说,我有一个数据导入程序在运行期间进行了120万次插入。花了4个小时,不进行缓存就进行更改。花费了16分钟。


    您是否尝试过这些技巧?

    http://weblogs.asp.net/haroonwaheed/archive/2008/06/30/ASP.NET-Performance-Tips.aspx


    您似乎首先假设问题出在下载大小上,但不一定是这种情况。您应该对ASP.NET站点进行一些试验,以确定代码中是否存在引起不必要的延迟的区域。如果事实证明下载大小不是问题,则需要找到方法来缓存结果(查看输出缓存,这是ASP.NET功能)或优化代码。

    无论如何,在查看性能问题时,第一步始终是首先确认您的假设,然后决定采取的措施。


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

    作为一个提示,我将确保您的应用程序被部署为Release版本,并在web.config的" compilation"部分中设置debug =" false"。


    您还可以查看ASP.NET输出缓存,该缓存可以相当精细地应用于页面的不同部分:

    http://msdn.microsoft.com/zh-CN/library/xsbfdd8c(VS.71).aspx


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


    您可以根据客户的支持来启用压缩。看到这篇文章:链接文本


    推荐阅读

      通过备份记录获得数据库的增长

      通过备份记录获得数据库的增长,,通常你想知道数据库是否正在增长,以及它增长了多少,可能比较数据库中每个历史时期的大小。 但是我们怎样才

      2010年底DIY硬件总结和安装参考

      2010年底DIY硬件总结和安装参考,,它似乎只是一眨眼的功夫从过去的最后一眼。看看现在的岗位似乎就在昨天,但看看当年的内容是真的走了,如果

      笔记本电脑常见硬件故障分析

      笔记本电脑常见硬件故障分析,,1。电脑非电(功率指示灯不亮)笔记本电脑脑电现象的处理方法,可按以下顺序检测: (1)首先检查适配器是否正确连接

      网站版权设置|网站版权格式

      网站版权设置|网站版权格式,,1. 网站版权格式下面介绍一些不错的无版权视频网,用好了,视频制作的成本将大大降低。”1. Pixabay一个老牌的素

      怎么检测电脑硬件问题

      怎么检测电脑硬件问题,电脑硬件,检测,怎么,电脑硬件故障的几种简单检查方法:一、首先确定你的电源已经打开、所有的连线全部连接到位。笔

      3月份安装峰值最突出的硬件价格表

      3月份安装峰值最突出的硬件价格表,,月,传统的DIY装机高峰,电脑城遍布城市的学生装军条件下呈现出一派欣欣向荣的景象。对骄傲的日子,浩浩荡荡

      常识硬件的计算机日常维护

      常识硬件的计算机日常维护,,硬件(防尘、防高温、防磁、防潮、防静电、防震) 应将电脑放在一个干净的房间,避免灰尘太多造成的不利影响,对各种

      未知软件异常应用程序错误解决方案

      未知软件异常应用程序错误解决方案,,我有很多朋友的电脑未知软件异常应用程序错误的问题,对于异常未知的软件异常中的应用一般提示(0xc00000

      卖电脑的网站|卖电脑的网站哪个好

      卖电脑的网站|卖电脑的网站哪个好,,1. 卖电脑的网站哪个好联想的在线商场东西质量当然是可靠的,那个地方本来就是做形象的。但是有坏处:1.注