日期:2014-05-16  浏览次数:20372 次

烦,脚本写得浏览器老当掉
现象是顺利执行完某个方法后,再点击页面就会当掉,若没有动作则无恙。
调了很久发现是这么句代码导致的
  xx   =   $( 'List ').getElementsByTagName( 'label ')[i].innerHTML;
//我用了prototype1.4,作用是从List这个div中获得第i个label的内容
--
等待大侠解惑

顺便请大家来谈谈写脚本要注意哪些性能问题,
我注意到的是var的使用,大量字符串连接用array组合,对象定义避免递归

------解决方案--------------------
只看这一句,貌似米什么问题!
------解决方案--------------------
当掉的具体表现形式是怎么样的?
------解决方案--------------------
碰到的问题和lz不太一样啊,不过说一说想法,赫赫。
这种情况估计有可能是页面对象尚未完全载如。把必须要提前
显示的在页面上列出来,剩余的放到onload里面,调用ajax替换掉
看看。
------解决方案--------------------
hA
------解决方案--------------------
换个浏览器看看 是不是楼主的机子的不好。。执行不了
------解决方案--------------------
看症状好象死循环...
------解决方案--------------------
写时间戳,看哪句话引起的慢,清除的时候你怎么清除的?
------解决方案--------------------
xx = $( 'List ').getElementsByTagName( 'label ')[i].innerHTML;
-----------
这一句看起来就不顺眼
在循环里调用层次太深
当然会严重影响效率,
改成这样:

var labelObjs=$( 'List ').getElementsByTagName( 'label ');
for(var i......)
{
xx = labelObjs[i].innerHTML;

}
------解决方案--------------------
那个方法不长的话可以 每行加个return; 挨行试 估计是遇上死循环了
------解决方案--------------------
循环调用层次太深,跳出的时候尽量终止掉当前循环吧