javascript中的多线程

javascript中的多线程,javascript,multithreading,Javascript,Multithreading,javascript中是否可以使用多线程? 这是我JSP页面的javascript部分。 我有4个if条件。4 if条件下的copde将运行4个诊断测试。但我想同时运行它们。可能吗 if(document.getElementById("VoiceNode").style.display=="block" && document.getElementById("voiceTest-0").style.display=="none"){ a

javascript中是否可以使用多线程? 这是我JSP页面的javascript部分。 我有4个if条件。4 if条件下的copde将运行4个诊断测试。但我想同时运行它们。可能吗

  if(document.getElementById("VoiceNode").style.display=="block" && document.getElementById("voiceTest-0").style.display=="none"){
                   alert("calling voice test");          
                    document.getElementById("voiceTest-0").style.display="block";
                    kbdOnnetVoiceTestAjaxCall.init('<%=contextPath%>','<%=Service.getServiceID()%>','<%=Service.getInventory().getTelephoneNumber()%>','<%=Service.getInventory().getPort()%>','<%=Service.getInventory().getDslam()%>','<%=Service.getInventory().getSlot()%>','${KBDResultsTimeout}','true')
                    document.getElementById("moreVoice").style.display="block";
                    alert("exiting voice test"); 
                }
                if(document.getElementById("sessionTest-0").style.display=="none"){
                                       document.getElementById("sessionTest-0").style.display="block";
                    kbdOnnetSessionTestAjaxCall.init('<%=contextPath%>','<%=Service.getServiceID()%>','<%=Service.getInventory().getTelephoneNumber()%>','<%=Service.getInventory().getPort()%>','<%=Service.getInventory().getDslam()%>','<%=Service.getInventory().getSlot()%>','${KBDResultsTimeout}','true')
                    document.getElementById("moreSession").style.display="block";  
                                    }
                if(document.getElementById("lineTest-0").style.display=="none"){

                    document.getElementById("lineTest-0").style.display="block";
                    kbdOnnetLineTestAjaxCall.init('<%=contextPath%>','<%=Service.getServiceID()%>','<%=Service.getInventory().getTelephoneNumber()%>','<%=Service.getInventory().getPort()%>','<%=Service.getInventory().getDslam()%>','<%=Service.getInventory().getSlot()%>','${KBDResultsTimeout}','true')
                    document.getElementById("moreLine").style.display="block";
                                     }
                if (document.getElementById("syncTest-0").style.display=="none"){

                    document.getElementById("syncTest-0").style.display="block";
                    kbdOnnetSyncTestAjaxCall.init('<%=contextPath%>','<%=Service.getServiceID()%>','<%=Service.getInventory().getTelephoneNumber()%>','<%=Service.getInventory().getPort()%>','<%=Service.getInventory().getDslam()%>','<%=Service.getInventory().getSlot()%>','${KBDResultsTimeout}','true')
                    document.getElementById("moreSync").style.display="block";
                                        }
if(document.getElementById(“VoiceNode”).style.display==“block”和&document.getElementById(“voiceTest-0”).style.display==“无”){
警报(“呼叫语音测试”);
document.getElementById(“voiceTest-0”).style.display=“block”;
KBDOnnetVoiceTestaXCall.init(“”,“”,“”,“”,“${KBDResultsTimeout},'true'))
document.getElementById(“moreVoice”).style.display=“block”;
警报(“退出语音测试”);
}
if(document.getElementById(“sessionTest-0”).style.display==“无”){
document.getElementById(“sessionTest-0”).style.display=“block”;
kbdonnetsessionestajaxcall.init(“”、“”、“”、“”、“${KBDResultsTimeout}、'true'))
document.getElementById(“moreSession”).style.display=“block”;
}
if(document.getElementById(“lineTest-0”).style.display==“无”){
document.getElementById(“lineTest-0”).style.display=“block”;
kbdOnnetLineTestAjaxCall.init(“”、“”、“”、“”、“${KBDResultsTimeout}”和“true”)
document.getElementById(“moreLine”).style.display=“block”;
}
if(document.getElementById(“syncTest-0”).style.display==“无”){
document.getElementById(“syncTest-0”).style.display=“block”;
KBDOnnetSyncTestaXCall.init(“”,“”,“”,“”,“${KBDResultsTimeout},'true'))
document.getElementById(“moreSync”).style.display=“block”;
}


您可以在事件循环中重新安排执行顺序。但它们不可能同时发生

JavaScript是单线程的。但是

  • 您可以使用
    setTimeout
    模拟“线程化”。这通常用于在密集操作期间防止“UI阻塞”
  • 或者使用最近的

  • 两个字。网络工作者@starbeamrainbowlabs,这是两个词Web workers是浏览器功能,与javascript无关。当你创建一个新的Web worker时,浏览器(不是javascript本身)会在与“窗口”线程分离的线程中运行它。我一直认为你可以使用Web worker来多线程处理你的javascript。如果我们不能在javascript中执行多线程,那么JS游戏引擎是如何工作的?