曾经耍过一些小聪明,而且是相当然的,有人问我你做过验证吗,….木有,然后也觉得自己很不靠普
下面是验证以前做一个选择器的时候用到的方法,主要是为了加速判断是否已选的操作
<html> <script> function ctime(func) { var s = new Date().getTime(); func(); return new Date().getTime() - s; } var time; time = ctime(function() { var i = 0; astr = []; while (i < 10000) { astr.push('fasdfasdf'); i ++; } }); document.write(time + '</br>'); time = ctime(function() { var i = 0; sstr = ''; while (i < 10000) { sstr = sstr + 'fasdfasdf'; i ++; } }); document.write(time + '</br>'); function is_include(arr, v) { for ( var i = 0, j = arr.length; i < j; i ++ ) { if (arr[i] == v) return true; } return false; } time = ctime(function() { var i = 0; while (i < 1000) { if (is_include(astr, '12321423')) break; i ++; } }); document.write(time + '</br>'); time = ctime(function() { var i = 0; while (i < 1000) { if (sstr.indexOf('12321423') !== -1) break; i ++; } }); document.write(time + '</br>'); </script> </html>
运行结果
ie6:
20 1342 5699 280
ie8:
30 30 9163 441
ff3.6:
1 2 111 97

效果很明显~
这个技巧很常用
2010年02月25日 @ 22:01