诊断网站慢启动AJAX ASP.NET

时间:2014-06-13 06:54:50

标签: asp.net ajax performance

我是一个遵循这种结构的Ajax .net网站:

  • Control(ascx):TopMenu,LeftPanel,RightPanel,Footer,都是非常简单的控件,不需要连接数据库或服务器端代码!

  • 一个div体(ajax)

每次网站启动时,首先加载4个控件,然后加载Ajax主体。在开发环境中表现相当不错。

但是当我将预编译的网站上传到主机时,启动时总是很安静,在第一次加载后,性能很好

我无法理解的是:据我所知,将首先呈现四个ascx控件,这意味着页面将被加载到客户端,之后是ajax内容。那么在启动时导致性能的原因是什么?

P / s:

  • 我确实在web.config
  • 中设置了密钥compilation = false
  • 我使用VS 2010中的发布工具编译网站(发布模式,不允许可更新...)
  • 我在网站上没有图片,这是一个非常简单的网站
  • 我检查了类似的主题,事件不久前发布了一个问题 这个,但仍然没有成功
  • 我的网站:http://iketqua.net

3 个答案:

答案 0 :(得分:1)

从您的网站上运行谷歌浏览器上的网络分析阻止网站渲染的是一个很大的延迟,在页面加载上进行大量计算,开始获取数据需要花费很多时间。< / p>

google分析脚本也必须放在页面底部,以及google plus,facebook等其他外部脚本。

此css上还有2种字体,无法加载,延迟时间约为3秒。

http://iketqua.net/Styles/Fonts/MyriadPro/font.css

http://planethost.gr/so/ExSiteTest101.jpg

答案 1 :(得分:1)

如果您指的是部署到生产后的第一个请求。我认为你无能为力。 ASP.NET第一个请求总是很慢,即使它是一个预编译的站点,因为服务器仍然需要在服务器端加载资源。

但是,如果您从客户端角度谈论首次加载,只需运行Chrome开发者工具,我就可以看到您网站的主页非常繁重(44次请求,加载时间约为4秒),这就解释了为什么第一次加载需要一些时间,后续请求更快......主要是因为浏览器缓存了这44项请求中的大多数。现在,在您的开发环境中,它很快就会发生,因为没有明显的网络延迟或连接跳跃,一旦您转向生产,网络lantency和连接跳跃在性能中起着重要作用......这就是许多站点使用CDN的原因。

建议

让您的网站更轻松。你可以避免很多事情。例如:

  1. 此背景图片(http://iketqua.net/img/header_bg.png)没用,因为它是一种纯色,您可以使用css轻松实现。这将转化为少一个请求
  2. 用于缩小和合并样式表和js文件的捆绑和缩小工具
  3. 优化您的CSS。花点时间来检查你的CSS并清理它。我无法相信这样一个简单的页面可以请求9个css文件...可能大多数都来自开源框架(jQuery UI,DatePick等)

答案 2 :(得分:0)

我没有权限将其作为评论发布,但如果它在开发环境中很好,那么它可能就像主机的能力或与主机的连接一样简单。

  

首次加载后,性能良好

我倾向于认为这是因为网站被缓存了。