网友贴出
一个网站,用Firefox访问会僵死,CPU占用100%,虽然不至于上系统挂掉,但Firefox自己会没有反应。我试了下,确实如此。看了它的页面,发现最后有一段Javascript,里面有个setInterval(),Google了一下,发现Mozilla那里近期刚解决了一个相关Bug,于是以为是真的Bug。再于是就下载了号称解决问题的20070531的Firefox 3.0alpha,来试这个网页和单独那段JS,发现没有效果。这才发现这个Bug其实说的是别的问题。
再看这段JS代码,发现那个setInterval写在函数体内可能有问题,把它拿出来,再试,果然好了,随意滚动,都不再有占用CPU的问题。这个网站在IE7上看,也一样要占用40%左右的CPU(可能机器比较破),但没有僵住。代码看下面,这里是把setInterval拿出来的样子。网上我放了两个HTML,一个是
好的,一个是坏的,有兴趣可以试一下。
坏的那个应该是有效果的吧,只能杀死,风险自负。
1
2 <SCRIPT>
3 set_y = 0;
4 distance = 0;
5 document.all['move_banner'].style.left = 900;
6 // move_div();
7 setInterval('move_div()');
8 function move_div()
9 {
10 var new_y;
11 new_y = document.body.scrollTop;
12 distance = new_y - set_y ;
13 if( set_y != new_y ) set_y += ( distance / 10 );
14 document.all['move_banner'].style.top = set_y+250;
15 // setInterval('move_div()');
16 }
17 </SCRIPT>
?????
cpu????……
?……
?????????js???
??sina???? ???js???????
??? ??100?????
?……????
firefox????????xss???????
????????……