我正在编写一个基于网络的应用程序(大型货机重量和平衡),用户输入托盘重量。当输入单个托盘重量时,必须进行多次检查以确定是否可以接受该重量。在所需的计算周期方面,检查都是相对微不足道的;一个不是。据我了解,JavaScript是单线程的,我认为如果用户开始在另一个托盘位置输入一个重量,他将被锁定,直到完全处理前一个重量。
我无法让用户在每次输入体重时等待(此时他们不需要这样做,因为应用程序当前没有正确进行最后一次检查)。目前我正在考虑不进行最后的计算密集型步骤,直到输入所有权重并且用户通过单击按钮表示。然而,这将剥夺用户关于最初触发问题的权重的立即反馈,多个权重可能有贡献的问题,并且如果他们必须等到最后一个就很难理清。
我对这个主题的谷歌搜索有点有用,但我在这里要求提供最新解决方案的想法。任何建议都是最受欢迎的。通过前往http://terryliittschwager.com/WB/JWB.php并选择飞机,可以观察到问题的背景。
答案 0 :(得分:2)
如果您想在客户端进行,我建议您查看WebWorkers。它们在主(DOM)JS线程的单独线程上运行。并非所有浏览器都支持(当然),但目前Chrome,FF,Safari和IE 10都支持。
编辑:WebWorkers的MDN是一个很好的起点。
答案 1 :(得分:1)
你可以使用Ajax用于长篇,javascript用于其余部分。或者尽可能分解计算并一次做一点。 http://www.sitepoint.com/multi-threading-javascript/