页面在 Safari Mac 中加载时间过长

Posted

技术标签:

【中文标题】页面在 Safari Mac 中加载时间过长【英文标题】:Page taking way too much time to load in Safari Mac 【发布时间】:2011-02-21 18:13:12 【问题描述】:

我们有一个网络应用 + 网站,但存在性能问题。我做了很多改进,将加载时间从大约 10-15 秒减少到大约 2 秒(根据 Yslow)。 它仍然太大(所有内容大约 600kb),但这是向前迈出的一大步,这就足够了......如果在 Safari/Mac(我们客户的配置)上,该网站不需要大约 2 分钟(!)加载。 我们客户的客户也经常在 Safari/Mac 上,所以这是一个大问题(例如,我们不能只说“更换你的浏览器”)。

我做了很多测试:

Safari Mac:第一次加载超过 2 分钟,刷新超过 10 秒 Firefox Mac:足够快 Safari Windows:足够快 Firefox Windows:足够快 IE Windows:足够快

知道为什么这个特定的网站要花这么多时间在这个特定的浏览器上加载吗?我不知道如何衡量 Safari 的性能:JS 是否太多,html 是否太大...? 网址:http://www.syntec-recrutement.org/

谢谢

【问题讨论】:

它在 Windows 上的 Safari 中表现如何?或者比较 OS X 上的 Safari 和 Firefox 和 Chrome,看看它只是 Safari 还是 OS X 中的东西。 我更新了我所做的测试的帖子 如果您认为是 javascript,则将其从页面中删除并测试加载页面。如果您有一个非常大的文件,请将其拆分,以便您只加载页面上绝对需要的内容。即使在 OS X 上的 Chrome 中加载它也很慢,我可能不会像普通用户一样等待它。 我不知道是 JS 还是别的什么。问题是,大部分 JS 都是由 asp.net 自动加载的,我对它没有太多控制权,除了完全删除它。 【参考方案1】:

这可能有点晚了,但无论如何,我今天在我的 ASP.NET 网站上遇到了类似的问题。

原来是导致问题的 VIEWSTATE 的大小。

我有很多包含在组合和树视图中的业务数据,默认情况下,这些傻瓜的视图状态是打开的,总计超过 250kb!出于某种原因,在 Windows 7 64 位系统上,这不会导致问题(我在 IE9、Chrome 13、Firefox 5、Safari 5 中进行测试),但在 Mac OS X 10.6 上,页面在所有浏览器中的加载速度都很慢我测试过(Safari 5、Firefox 5、Chrome 13)。一旦我减小了视图状态的大小,它就可以很好地工作,并且客户端加载时间在 Windows 和 OS X 上都非常快。

因此,如果有人遇到此问题,我建议在页面呈现后查看您的页面源代码,并查看视图状态是否大得离谱。如果是这样,请尝试减小视图状态的大小。

一种简单的方法(ASP.NET 2.0+)是将视图状态存储在服务器上的会话状态中(只要您的应用程序没有大量用户并且您的服务器有足够的 RAM,这应该没问题和会话状态已启用等)。您可以通过将以下内容添加到页面的代码隐藏文件中轻松做到这一点:

PageStatePersister _pers;

protected override PageStatePersister PageStatePersister   
   
    get
    
        if (_pers == null)
        
            _pers = new SessionPageStatePersister(this);
        
        return _pers;
    

有关此技术的更多信息,请查看http://msdn.microsoft.com/en-us/library/system.web.ui.pagestatepersister.aspx

【讨论】:

谢谢,如果我们再次遇到问题,我会尝试。

以上是关于页面在 Safari Mac 中加载时间过长的主要内容,如果未能解决你的问题,请参考以下文章

网页在模拟器的 safari mac safari 中加载,但未在 webView iOS obj C 中加载

检测页面是不是在 JavaScript 中的 WKWebView 中加载

URL 不会在 UIWebView 中加载,但会加载到 safari 浏览器中

Jquery DOM 准备就绪 - 不是每次都在 iphone 5 (ios7) 上的 Safari 中加载

Google Adsense 广告未在 UIWebView 中加载

无法在 Xampp /lampp (MAC) 中加载 laravel 项目