我敢肯定,这个头衔会激起许多读者的“我们再来......”的反应。道歉。我用Google搜索了这个问题并得到了电话簿。主要是关于SSL,必须说。其他人指出IE中可怕的JS引擎。我找到的互联网咆哮都没有给我带来满意的答复。所以我想我会在这里发帖......
我正在构建一个Web应用程序,主要是在Firefox中开发的(因为Firebug),在Opera,Chrome,Safari和IE中进行了测试。很多jQuery,很多AJAX。 Web服务器是Win XP上的Apache。浏览器响应通常非常快(网络服务器在局域网上没有其他任何东西),IE除外,它的速度非常慢。
我的代码通常按以下方式构建:
module1= function() {
// JS code backing html in div1
};
$div1.load("div1.html",function() {
module1();
});
也就是说,module1的JS代码是浏览器从“go”一词中知道的,虽然我希望在所有浏览器中推迟编译此代码,直到我实际调用module1()闭包,成功加载()。因此,我可以很容易地相信,IE中可能存在的慢速JS引擎会产生阻力(显示div1)。然而...
我注意到,虽然IE6会延迟加载我的HTML代码段和所有附带组件(主要是图像),但当我启动另一个浏览器(以节省时间)并加载我的网站时,该浏览器将一直挂起,直到IE完成下载的时间。也就是说,IE完全破坏了我的Apache服务器。
这让我觉得这主要不是一个缓慢的JS解释问题。事实上,Apache和IE之间可能存在一些握手问题。我在Apache的日志中没有这方面的证据,因此我想我会问。
有没有人有任何想法? Apache上是否存在(已知)配置问题?
PS:我可能会补充一点,在这些长期的后期加载过程中,IE的状态栏 - 我相信,这是一个不可靠的进度指示器 - 经常显示我的图标的URL(即非常小的.gif和.png文件)答案 0 :(得分:0)
最近与IE6合作我可以指出一件对我们有帮助的事情。 我们回顾了所有jQuery代码,以便添加很多(实际上很多):
SetTimeout(function() { <HERE TO REGULAR CODE WE HAD>,0});
这个强制重绘IE6上的事件(某些新的执行环境,如果我理解IE6 js那么重绘),并且至少,用户可以看到已加载的页面部分。在加载回调时非常有用。因此,至少用户感知更好,页面的块出现并且用户对速度的感知更好。但似乎整个实时也更好。
关于IE6 apache交互,因为你的apache服务器不在你的计算机上但在局域网上你应该尝试:
IE6可能存在Keepliave请求的问题,或者他可以在一台服务器上运行的并行查询数量有限制。但是,为此我们在问题发生时需要有关HTTP流量的更多信息(并且服务器状态至少是一个好的,请检查扩展状态)。