我对非阻塞架构很着迷。虽然我没有使用过 Node.js,但我在概念上已经掌握了它。此外,我一直在开发一个事件驱动的 Web 应用程序,因此我对事件编程有基本的了解。
您如何在浏览器中编写非阻塞 javascript?我想这在某些方面一定与 Node 的做法不同。例如,我的应用程序允许用户加载大量数据(序列化为 JSON)。解析此数据以重构应用程序状态。这是一项繁重的操作,可能会导致浏览器锁定一段时间。
我相信使用网络工作者是一种方式。(这似乎是显而易见的选择,然而,Node 实现了一个非阻塞的、事件驱动的架构,我相信不使用 Web Workers,所以我想肯定有另一种方式。)我相信计时器也可以发挥作用。我阅读了 TameJS 和其他一些扩展 javascript 语言的库。我对使用本机 javascript 而不引入新语言语法的 javascript 库感兴趣。
资源、图书馆和实际示例的链接非常受欢迎。
编辑:
了解了更多,我意识到我所说的属于“期货”一词。然而,jQuery 实现了这一点,它总是使用 XHR 调用服务器,服务器在返回结果之前进行处理,而我在做同样的事情而不调用服务器,客户端进行处理但在非阻塞方式。