有没有什么办法在javascript中以最简单的形式实现线程概念。 情况是,在我的应用程序中,如果用户尝试点击一件事,任务可能需要很长时间,所以我想让用户做其他事情,如果任务完成,他可以获得结果。 所以,如果任何人有任何想法,请回答。在Javascript中实现线程概念?
在此先感谢。
被修改
确切的情况是用户点击启动PROCESSS,该过程需要在服务器侧被执行,并且可以花费一些时间。所以我会每5或10秒钟ping一次服务器来检查这是否完成。意思是用户可以做任何他想做的事情。
有没有什么办法在javascript中以最简单的形式实现线程概念。 情况是,在我的应用程序中,如果用户尝试点击一件事,任务可能需要很长时间,所以我想让用户做其他事情,如果任务完成,他可以获得结果。 所以,如果任何人有任何想法,请回答。在Javascript中实现线程概念?
在此先感谢。
被修改
确切的情况是用户点击启动PROCESSS,该过程需要在服务器侧被执行,并且可以花费一些时间。所以我会每5或10秒钟ping一次服务器来检查这是否完成。意思是用户可以做任何他想做的事情。
使用网络工作者:
网络工作者是在后台独立于其他脚本的运行, ,不影响 页面性能的脚本。你可以继续做任何你想做的事情:点击, 选择东西等,而网络工作者在后台运行。
从http://www.w3schools.com/html/html5_webworkers.asp
这里你可以看到一个例子:
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webworker
JavaScript是不是多线程的,虽然有使用asyc
S或setTimout
或setInterval
类似的情况,但这些是JavaScript中的功能,它与多线程应用程序没有任何关系。
但概念HTML5
允许你在后台做一些工作。
小心此功能目前不支持所有浏览器。
如果任务是在JavaScript中完成的,请使用webworker。 –
查阅'WebWorkers' - https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers – Lloyd
请注意,任务的性质可能会导致不同的答案。 –