答案 0 :(得分:10)
如果您在代码中使用任何行为(或您使用的库使用它们),例如
<style>
body * {
behavior:url(anyfile.htc);
}
</style>
然后我知道 NO解决方案,IE8(和IE7)的 bug report filed in IE Feedback on Connect 因以下毯子而被拒绝罐头声明:
这是IE中的已知错误,也发生在以前的IE版本中。你的原因 在状态栏中看到数百个请求是因为IE尝试读取htc文件 从磁盘一遍又一遍地为页面上的每个元素。不幸的是,此时此刻 我们不打算解决这个问题。我们将在未来的IE版本中考虑这一点。
祝你好运, IE团队
由于这与IE7开发收到的回复相同,我不会屏住呼吸 EVER 解决这个问题。
<强>更新强>
根据您的更新说明另外考虑一下。如果页面没有响应,就好像它仍在加载某些内容,请检查呈现的DOM内容是否有对document.write()
的任何调用{您可能没有添加它们,但lib可能有}。
如果它们存在,请尝试在完成后添加document.close();
语句,这将告诉浏览器您已“完成”渲染。
PS这里是一个链接,你可以保存为书签(右键点击“添加到收藏夹...”),它将显示生成的DOM,因为IE看到它(一个丑陋的quoteLess = CaMelCaSeMeSS)搜索结果找到可能导致问题的任何古怪代码。
IE Generated Source :(将此添加为任何书签的位置,编辑器不会让我将其链接起来)
javascript:'<xmp>'+window.document.body.parentNode.outerHTML+'</xmp>';
答案 1 :(得分:7)
之前我遇到过类似的问题,这是因为在页面中间有一个长时间运行的JS片段,浏览器正在等待它完成执行才能完成下载站点的其他文件
我不确定这对你是否是一个问题,但它以类似的方式表现出来。
答案 2 :(得分:4)
答案 3 :(得分:3)
关于缓存图像,我不得不使用HTTP处理程序来正确缓存图像。具体来说,CSS菜单中有一张箭头的图片会导致您正在处理的确切行为,因为它在每个菜单中多次使用。
以下是处理程序的代码:http://www.groovybits.com/SrcViewer.aspx?inspect=~/PersistantImage.ashx
您可以在AppSetting
中添加web.config
来使用它:
<add key="UniqueImageName" value="~/Images/image_name.gif"/>
使用处理程序而不是图像本身的路径引用每个图像的来源:
~/Handlers/PersistantImage.ashx?key=UniqueImageName
答案 4 :(得分:3)
这与IE中透明PNG的“修复”有关。
我在使用网站时遇到了同样的问题,很快发现没有有效的解决方案可以修复此问题和透明PNG图像。
答案 5 :(得分:1)
这家伙有一个great writeup on IE6 caching problems,但博客似乎已失效。
他将问题分成两部分:<img>
标签来解决这个问题。问题#2的自然解决方案是使用background-image
代替<img>
代码;阴险地说,这会迫使你进入问题#1;结果,你可能会打败问题#2,错误地认为你没有取得进展。
就我而言,当我用innerHTML
和<img>代码替换<div>
background-image
代码时,我立即解决了这两个问题>使用document.execCommand("BackgroundImageCache", false, true)
来修复闪烁。
答案 6 :(得分:1)
我找到了大部分项目的解决方案。
我几乎在每个项目中使用 jQuery Fancybox插件。如果你正在使用Fancybox并且“x items remaining”问题,那么这就是解决方案:
在靠近文件末尾的fancybox的css文件中,有一堆IE过滤器可以正确加载半透明png。像这样:
.fancybox-ie6 #fancybox-close { background: transparent;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='fancybox/fancy_close.png', sizingMethod='scale'); }
您可以注意到src属性中的路径是错误的。
只需修复所有过滤器的路径(大约有20个),问题就解决了!
我建议设置一个相对于root的路径,如下所示:
.fancybox-ie6 #fancybox-close { background: transparent;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader
(src='/css/fancybox/fancy_close.png', sizingMethod='scale'); }
答案 7 :(得分:1)
我通过以下方式解决了这个问题。这是一个黑客,但它的工作原理。
只需在身体标记后面使用隐形IMG标记加载图片。例如,
<body>
<img src="problem_image_here.jpg" style="display:none">
...
</body>
IE似乎通过css加载相同的图像,此后没有任何问题。