Javascript 单击检查所有按钮问题

Javascript 单击检查所有按钮问题,javascript,html,css,Javascript,Html,Css,我有一个全选按钮,点击它会选中所有的复选框。但在我的显示页面上,我有30000个复选框,点击“全选”按钮,页面将无响应。有人能帮忙吗 function js_select_all(btn,theForm){ if (btn.value == "Check All") { var checkval = "checked"; if (js_one_row(theForm.circSelected)) { theForm.circSelecte

我有一个全选按钮,点击它会选中所有的复选框。但在我的显示页面上,我有30000个复选框,点击“全选”按钮,页面将无响应。有人能帮忙吗

function js_select_all(btn,theForm){
   if (btn.value == "Check All")  {
       var checkval = "checked";
       if (js_one_row(theForm.circSelected)) {
           theForm.circSelected.checked = checkval;
       } else {
           for (var i=0; i < theForm.circSelected.length; i++){
               theForm.circSelected[i].checked = checkval;
           }
       }
       btn.value ="Uncheck All";
   }else {
       if (js_one_row(theForm.circSelected)) {
           theForm.circSelected.checked = false;
       } else {
           for (var i=0; i < theForm.circSelected.length; i++){
               theForm.circSelected[i].checked = false;
           }
       }
       btn.value = "Check All";
    }
}

函数js\u select\u all(btn,表单){
如果(btn.value==“全部检查”){
var checkval=“checked”;
如果(js_一行(选中的格式圈)){
form.circSelected.checked=checkval;
}否则{
对于(var i=0;i
soembody可以帮助我以最快的方式获得结果吗?我正在开发一个只支持HTML、CSS和JS的webtoolkit。

将任务分成小块,并使用setTimeout在短暂延迟后运行它们 这允许浏览器保持响应。假设勾选框都立即改变状态是不必要的?用户可能会很高兴计算机正在打勾,即使这需要一些时间,因为否则用户将不得不自己做

下面是一个例子,我们将它分成100个复选框的块,每个块以1000毫秒的间隔完成

const chunkSize=100;
const intervalBetweenChunksMs = 1000;
for (var i=0; i < theForm.circSelected.length ; i+=chunkSize) { 
  console.log("Creating chunk starting at",i)
  setTimeout(function(start){for(var j=start; j<Math.min(i+chunkSize,33); j++) 
    { 
      console.log("Doing item number", j);
      theForm.circSelected[j].checked = checkval;

    }
  }(i),(1 + theForm.circSelected.length/chunkSize)*intervalBetweenChunksMs ) 
}
const chunkSize=100;
const intervalBetweenChunksMs=1000;
对于(var i=0;isetTimeout(函数(启动){for(var j=start;jBetter show demo working snippet。你不可能真的有30000条记录并对其进行JQuery处理。它肯定会挂起并使浏览器无响应。我建议,每当单击“全选”时,将其传递给服务器并在服务器端处理,而不是选中所有复选框。