摘要
jquery用于通过get()调用检索搜索结果。当呈现大部分结果时没有问题,但是当呈现部分结果时,IE7在呈现之前始终挂起5-30秒。
问题
jquery中的get()调用成功执行。数据上没有eval()或urlencode或解码器,因为数据是html。一个大的内容区域被替换为数据
$('#content').html(data);在#content中,有几个隐藏的div包含要移动到#content之外的另一个区域的内容。(这些是通过ajax检索的搜索结果,面包屑需要在另一节中更新)
$('#breadcrumb').html($('#content #breadcrumbcontainer').html());上述功能在Firefox和其他浏览器中运行得很好。
在没有脚本调试器的Vista计算机上使用IE7.0.6001.18000进行测试在所有情况下都是快速和正常的。
使用MS调试器在XP上进行7.0.5730.11的测试在很多情况下是缓慢的。在这一点上,我只能猜测--看上去这与
installed
setTimeout()的一些组合
可以提供更多的代码,但是当IE7中没有脚本调试器的时间为1秒时,性能非常差(30秒呈现),这实在令人困惑。
任何关于原因的建议显然都会受到欢迎。
-更新--
tskmanager现在显示iexplorer.exe空闲时的CPU使用情况。就挂着,好像有个暂停。
更新2
已经证实,没有microsoft脚本调试器的IE7是IE7慢的。
范围:4秒到2:19平均: 33秒中位数:18秒标准差: 37秒
发布于 2009-07-09 15:26:51
这个问题来自我忽略的一个事实--即搜索结果,每个搜索结果都包含一个flash对象。删除闪存对象使速度可与FF媲美。
现在使用swfobject在$(document).ready()之后加载闪存,问题已经消失。
这种行为是不一致的,因为IE7将缓存闪存对象-因此有时性能将是正常的。
https://stackoverflow.com/questions/1101740
复制相似问题