我有一个数据密集型的Cappuccino应用程序,运行一个“作业”可能需要30秒的时间,一个例子可能是将来自多个数组的值组合在一起,以生成一个用于TableView的进一步的数组。我想包括一个动画进度条,这将需要超过1秒钟或2秒钟,但我似乎阻止了主(主)线程,所以没有任何活动是可见的。也就是说,控制台消息和显示更新都要等到作业完成。是否可以在后台线程上运行这样的作业,以便主应用程序(包括进度条)能够在进程中进行更新和显示?
发布于 2015-03-22 18:05:03
Javascript没有线程或共享内存。您可以使用webworker API并行执行代码。web工作者的一般问题是,在工作人员中运行的代码必须位于单独的文件中。
幸运的是,已经有人为它创建了一个很好的包装器,它将从一串代码创建一个数据blob,并将其用作工作人员的文件。然后,您将希望将数据传递给该新工作人员,并让它运行。
您可以偶尔从员工处调用postMessage(),您可以使用它来更新进度指示器。
https://stackoverflow.com/questions/29192600
复制相似问题