gpt4 book ai didi

javascript - window.location.hash 分配在 IE8 中非常慢

转载 作者:可可西里 更新时间:2023-11-01 01:24:37 27 4
gpt4 key购买 nike

我在为 XP 的 IE8 中修改位置哈希时遇到问题。只需调用:

self.location.hash = "whatever"

大约需要800ms~1800ms

我不知道什么可以减慢速度。我在其他一些网站上检查了相同的说明,并没有那么慢。

有什么线索可以让它这么慢吗?很抱歉,我无法提供在线示例。


编辑:这是我在 IE 控制台中得到的,输入:

console.log( new Date().getTime() );
self.location.hash = "sfdsd";
console.log( new Date().getTime() );

输出:

JOURNAL : 1326468325447
JOURNAL : 1326468327390
undefined

如果我没看错的话,一次赋值几乎需要 2000 毫秒:/。


EDIT2:因为它看起来不够清楚,更多的预归档代码:

var profileThat = function() {self.location.hash = "whatever"};
$('#keywatchHeader').click( profileThat );

点击两次的探查器结果:

profileThat   2   3475,00 3475,00
hidden 4 50,07 50,07 http://192.168.0.30/kw5/js/jquery/jquery-1.6.2.js 6 608
eventHandle 8 3525,07 40,06 http://192.168.0.30/kw5/js/jquery/jquery-1.6.2.js 2 595
get 4 20,03 20,03 http://192.168.0.30/kw5/js/jquery/jquery-1.6.2.js 6 419
get 6 10,01 10,01 http://192.168.0.30/kw5/js/yui2/dom/dom.js 96

编辑3:

出于好奇,我对树上的节点编号进行了一些测试,结果令人惊讶。这样的调用之后:

document.getElementsByTagName('*').length; //3621
$('#keywatchPanels').children().remove();
document.getElementsByTagName('*').length; //332

在那之后,分析器每次调用都会给出 600ms 而不是 1700ms!但我几乎没有节点号会影响标签的写作。


(edit4):我发现了这个相关问题:Why is this piece of Javascript code so slow? (但这里的答案只是“删除它”)

最佳答案

最后,我在一个相关问题的答案的评论中找到了我的答案: Why is this piece of Javascript code so slow?

Ugh, just found someone on a blog with the same problem. Apparently it's only this slow if you're running the IE Developer Toolbar. Now how the heck am I going to profile? -_-'

– Aistina 2009 年 5 月 7 日 9:22

我为什么不早点想到它?

关于javascript - window.location.hash 分配在 IE8 中非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com