读书人

循环太多,导致脚本崩溃,寻求解决办法

发布时间: 2013-11-29 13:49:33 作者: rapoo

循环太多,导致脚本崩溃,寻求解决方法
需求是这样的, 做一个类似答题的一个系统,

分了十几个小模块,里面有对应的题,每个题下有三种分数(下拉选择)

类似下面那种结构 一个页面的题大概有50左右




后来想想也是,,一个页面有大概40多循环 能不卡吗.
有没有其他解决办法, 不用那么麻烦的使用唯一id 的val()相加(题目50左右实在是太多了)...

试试用委托,把分类放在一个数组中,每进行一个操作就保存一个值
[解决办法]
引用:
Quote: 引用:

既然IE8+都没事怎么可能因为循环多导致的IE6出事了
去看看JS哪里不兼容吧
IE8跟IE6 7 JS有兼容性问题


ie6会出现脚本崩溃的提示 问其是否继续
继续的话 是可以的 不过用户肯定等不了那么久.


如果按照你的计算方式的话

分别计算 所有A的得分 B的得分 C的得分
每个大题下的A的得分 B的得分 C的得分

试一下用数组存储每个大题下的A的得分 B的得分 C的得分
然后计算所有A的得分 B的得分 C的得分的时候用上面的数组进行求和
应该会节省一点时间
[解决办法]
不命名,就用序号嘛
假定每个题目下的下拉文本对不等(你各处的都是3对)
并假定每个题目都用一个 div 包裹,且每个对象都以命名(即 name 属性存在)则有原型
a = [];
$('div').each(function() {
$(this).find('[name]').each(function(i){
a[i] += $(this).val();
});
});

数组 a 就是按对象次序的结果(偶数下标为 select 的值,奇数下标为 text 的)
也可以分别取出
总之只需遍历一遍
[解决办法]
认真看了看。
本来就不该这么做的。
你不会这样设几个变量。
T1= [[],[],[]],
T2 = [[],[],[]],

根据事件(如click)把值push进去。

读书人网 >JavaScript

热点推荐