变态的全选(上万个复选框的全选你享受过吗?)
hrj324
2011-05-24
![]() |
|
zygege
2011-05-25
int08h 写道 jquery的循环真的不算慢,楼上可以试试1W个复选框用jquery循环和直接DOM循环差多少,我估计差不到5%
1W个checkbox全选是没做过,但在地图上放1W个标记这事倒是干过,有些优化是有固定方法的,比如移除DOM,不要再去想更复杂的了…… 别说1W个了,我曾经达到几百个,一次性CHECK,用Jq马上页面假死,用DOM速度那叫一个快。 |
|
yizhilong28
2011-05-25
建议参考下分页
|
|
int08h
2011-05-25
zygege 写道 int08h 写道 jquery的循环真的不算慢,楼上可以试试1W个复选框用jquery循环和直接DOM循环差多少,我估计差不到5%
1W个checkbox全选是没做过,但在地图上放1W个标记这事倒是干过,有些优化是有固定方法的,比如移除DOM,不要再去想更复杂的了…… 别说1W个了,我曾经达到几百个,一次性CHECK,用Jq马上页面假死,用DOM速度那叫一个快。 var fragment = document.createDocumentFragment(); for (var i = 0; i < 10000; i++) { var input = document.createElement('input'); input.type = 'checkbox'; fragment.appendChild(input); } document.body.appendChild(fragment); var jq = $('input'); var dom = document.getElementsByTagName('input'); console.time('jquery'); jq.attr('checked', true); console.timeEnd('jquery'); console.time('dom'); for (var length = dom.length, i = 0; i < length; i++) { dom[i].checked = false; } console.timeEnd('dom'); 以上测试代码,运行结果如下: jquery: 77598ms dom: 79126ms 不知道你那的结果如何…… |
|
hz020815
2011-05-25
建议不要用IE运行。。。
|
|
lzqustc
2011-05-25
love_ai87 写道 我更想知道1w个单选框在页面上画出来了是个什么场景~~~
me too. |
|
Aaron5
2011-05-26
lzqustc 写道 love_ai87 写道 我更想知道1w个单选框在页面上画出来了是个什么场景~~~
me too. 在某国有垄断企业导出excel应用中。非不给你分页。我就想来1万条试试,哪天高兴了10万条也说不定。你说我看得了么!?只有一句话:这你不要管。 |
|
Aaron5
2011-05-26
int08h 写道 不移出DOM,用了113232ms
移出DOM,用了157ms 根本不需要考虑别的方式了,直接移出DOM操作就行 var t = $('#tttt').detach(); t.find(':checkbox').attr('checked', true); t.appendTo('body'); 非常感谢啊!原来还有这种方法。哎,以后得加强下某个方面了。在公司里前后台都做,部署也做。没一个精通的。太感谢了。 |
|
abraham_xi
2011-05-26
上万个复选框的全选?为什么会有这样的页面?我觉得研究全选是其次了吧,这个页面出来要多长时间??
|
|
wanglei2999
2011-05-26
上帝 变态的上帝
|