【问题标题】:Diagnose website slow startup AJAX ASP.NET诊断网站慢启动 AJAX ASP.NET
【发布时间】:2014-06-13 06:54:50
【问题描述】:

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

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

  • 一个 div 正文 (ajax)

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

但是当我把预编译好的网站上传到主机时,总是需要很长时间才能启动,第一次加载后,性能很好

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

P/s:

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

【问题讨论】:

  • 他们可以有一百个理由,实际上没有真实的网站我个人无话可说。
  • 我的网站:iketqua.net

标签: asp.net ajax performance


【解决方案1】:

从您的网站并在 google chrome 上运行网络分析阻止您网站呈现的原因是对页面加载进行大量计算的巨大延迟,开始获取数据需要大量时间。

还有 google 分析脚本,必须与 google plus、facebook like 等的其他外部脚本一起放在页面底部。

这个css上还有2个字体,无法加载,这需要将近3秒的延迟。

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


(来源:planethost.gr

【讨论】:

  • 谢谢,我会尽力解决你提到的所有问题
【解决方案2】:

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

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

建议

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

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

【讨论】:

  • 谢谢,我会尽力解决你提到的所有问题
  • 酷,很高兴能提供帮助,但未经审查就不要相信我的话。进行自己的研究并密切关注您可以改进的事情......最后您可以访问您的项目
【解决方案3】:

我没有权限发表评论,但如果在开发环境中没问题,可能是主机的能力或与主机的连接一样简单。

第一次加载后,性能不错

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    相关资源
    最近更新 更多