JavaScript 中的多线程

Multi-threading in javascript

本文关键字:多线程 JavaScript      更新时间:2023-09-26

有没有办法在Javascript中实现多线程执行。我正在我的应用程序中实现分页,目标是用户的最短等待时间。我既不希望一次性将所有数据带到客户端,也不想在每个单击的"下一个/上一个"按钮上创建一个服务器和数据库。因此,我希望浏览器创建请求并更新我的数据列表,而前端用户尚未到达最后一页。

如果有人已经实现了这个,那么请建议我。

您可以使用setInterval和setTimeOut函数来获得多线程效果,但这不是真正的多线程,您可以在此处阅读很好的讨论

您可以考虑查看无限滚动技术。有许多插件可以促进这一点,包括Paul Irish的Infinite Scroll。

这与 Twitter 等网站使用的技术相同,以便页面在用户向下滚动时更新,从而为用户创建无缝的 UI 体验并消除延迟。

您可以使用计时器(setTimeout)在JS中模拟异步性。定时事件在以下情况下运行

  • 达到计时器
  • 当JS不做任何事情时

因此,使用 setTimeout 在执行中创建"间隙"允许执行其他"等待中的代码"。它仍然是单线程的,但就像"切断线路"

下面是一个示例

通过使用Concurrent.Thread JavaScript库很容易做到这一点,该库是免费和开源的。 不需要 SetInterval 或 SetTimeout。

您可以从这里下载:http://sourceforge.net/apps/mediawiki/jsthread/index.php?title=Main_Page

解释该库使用的教程可以在这里找到:http://www.infoq.com/articles/js_multithread