【问题标题】:Excruciatingly slow AJAX with IE6IE6 的 AJAX 速度极慢
【发布时间】:2011-03-30 01:18:14
【问题描述】:

我敢肯定,这个标题会引起许多读者的“又来了……”的反应。道歉。我已经用谷歌搜索了这个问题并得到了电话簿。主要是关于 SSL,必须说。其他人则指出 IE 中糟糕的 JS 引擎。我发现的所有互联网咆哮都没有真正让我满意地回答这个问题。所以我想我会在这里发帖......

我正在构建一个 web 应用程序,主要是在 Firefox 中开发的(因为 Firebug),在 Opera、Chrome、Safari 和... IE 中进行了测试。大量的 jQuery,大量的 AJAX。 Web 服务器是 Win XP 上的 Apache。浏览器响应通常非常快(网络服务器在 LAN 上,什么都不做),除了 IE,它非常慢。

我的代码通常按照以下方式构建:

module1= function() {
    // JS code backing html in div1
};

$div1.load("div1.html",function() {
    module1();
});

也就是说,module1 的 JS 代码对于浏览器来说是从单词“go”中知道的,尽管我希望在所有浏览器中延迟编译这段代码,直到我实际调用 module1() 闭包,它只在后面成功加载()。因此,我可以很容易地相信,IE 中可能存在的慢速 JS 引擎会出现拖动(显示 div1)。不过……

我注意到的是,虽然 IE6 延迟加载我的 HTML sn-ps 和所有相关组件(主要是图像),但当我打开另一个浏览器(打发时间)并加载我的网站时,该浏览器将挂起,直到 IE 完成下载。也就是说,IE 完全为其他人破坏了我的 Apache 服务器。

这让我认为这主要不是一个慢速 JS 解释问题。事实上,Apache 和 IE 之间可能存在一些握手问题。我在 Apache 的日志中没有这方面的证据,因此我想我会问。

有人有什么想法吗? Apache 上是否存在(已知的)配置问题?

PS:我可能会补充一点,在这些长时间的延迟加载工作中,IE 的状态栏——我相信,这是一个不可靠的进度指示器——经常显示我的图标的 URL(即非常小的 .gif 和 .png 文件) .

【问题讨论】:

  • 网络服务器是否在您加载网页的本地运行?
  • 在 LAN 上,是的,不是在运行浏览器的客户端上。
  • 你的用户实际使用IE6的比例是多少?我的意思是:这真的值得修复吗(知道这很可能是一个 IE6 问题,而您对此无能为力?)。
  • 这是一个很好的问题。昨天当我注意到我的模态对话框被 SELECT 标记淹没在 IE6 中时,我被吓坏了,这是无数已知的 IE 问题中的另一个,我诅咒“就是这样 - 我将放弃对 IE6 的支持”。麻烦的是,当我研究这个问题时,事实证明 IE7 显然同样糟糕。坦率地说,如果由我决定,我会告诉每个用户获得一个像样的浏览器并将 IE 放入最近的位桶中。在现实生活中,我们都知道,每个没有思考的用户都有一个版本的 IE 或其他......
  • 我也有点不相信这本身就是一个 IE 客户端问题,因为其他浏览器挂起的方式。我更担心 M$ 对 IE6/7/8 做了一些事情,在与 IIS 握手时可能会提供更好的结果,但会弄乱 Apache。这确实是我提出问题的主要原因。

标签: jquery apache internet-explorer internet-explorer-6


【解决方案1】:

最近在使用 IE6 时,我可能会指出一件对我们有帮助的事情。 我们审查了相当多的 jQuery 代码,添加了很多(真的很多):

SetTimeout(function() { <HERE TO REGULAR CODE WE HAD>,0});

这会在 IE6 上强制重绘事件(如果我对 IE6 js 理解良好的话,是某种带有重绘的新执行环境),并且至少,用户可以看到已加载的部分页面。在加载回调时非常有用。所以至少用户感知更好,页面块出现,用户感知速度更好。但似乎整个实时也更好。

关于 IE6 apache 交互,因为您的 apache 服务器不在您的计算机上,而是在 LAN 上,您应该尝试:

  • 从另一台机器测试网站,而不是运行 IE6 的机器(运行困难)
  • 激活 mod_status 并检查 url /status 查看是否有几个工人在 被 IE6 或只有一个使用

IE6 的 Keepliave 请求可能存在问题,或者他可以在一台服务器上运行的并行查询数量受到限制。但为此,我们需要更多关于问题发生时 HTTP 流量的信息(服务器状态至少是一个不错的状态,同时检查扩展状态)。

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多