AFAIK meteorjs 使用node-fibers,但他们的 github 页面声明它仅是服务器端和 v8(或者不是?)。
meteorjs 是如何在客户端实现非阻塞、同步的api 的 ?
它是否与chrome以外的其他浏览器兼容?
如果有人能给我指出纤维的纯 JS 实现,或者解释它们是如何工作的(他们有自己的事件循环吗?),我将不胜感激。
任何指向工作客户端光纤实现的 github 项目的链接也将不胜感激!
毕竟是圣诞节 :)
AFAIK meteorjs 使用node-fibers,但他们的 github 页面声明它仅是服务器端和 v8(或者不是?)。
meteorjs 是如何在客户端实现非阻塞、同步的api 的 ?
它是否与chrome以外的其他浏览器兼容?
如果有人能给我指出纤维的纯 JS 实现,或者解释它们是如何工作的(他们有自己的事件循环吗?),我将不胜感激。
任何指向工作客户端光纤实现的 github 项目的链接也将不胜感激!
毕竟是圣诞节 :)
node-fibers 项目是Node.js的仅限 Windows 的服务器端扩展,用 C++ 实现。您可能永远不会在网络浏览器中看到它。
JavaScript 是单线程的。如果要实现非阻塞 I/O,则必须实现节点样式的消息循环和异步 I/O 库。默认情况下,所有客户端 I/O 都是同步的,尽管 Meteor 和其他库提供回调。
是的,Meteor 的客户端实现在 Chrome 之外的多个浏览器上运行。
我相信在服务器端,一切都与 Meteor 完全同步,这要归功于 MiniMongo。因此不需要异步回调,或者更准确地说,Meteor 不需要等待update
来自服务器的回调继续执行下一条指令,这要归功于 MiniMongo 同步响应。
我还没有通过查看源代码来验证我刚才所说的一切,但我无法想象它会如何以不同的方式工作。
编辑
还没有深入研究源代码,但是Meteor 指南的这一部分似乎朝着我想的方向发展。