摘要
jquery用于通过get()调用检索搜索结果。渲染大量结果时没有问题,但是当渲染部分结果时,IE7会在渲染前持续挂起5-30秒。
问题
jquery中的get()
调用成功执行。数据上没有eval()
或urlencode或解码,因为数据是html。通过
$('#content').html(data);
在#content
内,有一些隐藏的div包含要移到#content
之外的另一个内容的内容。 (这些是通过ajax检索的搜索结果,并且需要在另一部分更新面包屑)
$('#breadcrumb').html($('#content #breadcrumbcontainer').html());
以上在Firefox和其他浏览器中运行良好。
在没有脚本调试器的情况下使用IE 7.0.6001.18000在Vista计算机上进行测试在所有情况下都很快且正常。
使用带有MS脚本调试器的7.0.5730.11的XP测试在很多情况下都很慢。我只能在这一点上猜测 - 看起来它与
有关setTimeout()
可以提供更多的代码,但是在IE7中没有脚本调试器的情况下,性能非常糟糕(渲染时间为30秒)真是令人困惑。
对于原因的任何建议显然都会受到赞赏。
- 更新 -
tskmanager现在显示iexplorer.exe在空闲时的CPU使用情况。 只是挂起,就像暂停一样。
- 更新两个 -
已经确认IE7没有微软脚本调试器,IE7很慢
范围:4秒到2:19 平均:33秒 中位数:18秒 标准差:37秒
答案 0 :(得分:1)
问题来自于我省略的事实 - 这是每个搜索结果都包含一个flash对象。移除flash对象使速度与FF相当。
现在使用swfobject在$(document).ready()
之后加载了闪存,问题已经消失。
行为不一致,因为IE7会缓存flash对象 - 所以有时性能会正常。