最根本的差别,在于运行环境的不同,想必题主是知道的。
最直接的差别,在于运行环境提供的接口不同。由于 node
可以获得较高的用户权限,因此它可以直接使用或是变通模拟浏览器提供的全部接口;而由于网页不可能获得比 node
更高的权限,因此无法完全模拟node
的许多接口。
文件系统、多进程、HTTP
服务等模块提供的,都是浏览器没有提供、也难以模拟的接口,所以即便打包塞进网页里,也无法像 node
那样丝滑且正确地运行。
新的chrome
浏览器已经提供了 window.webkitRequestFileSystem
文件系统接口,以此为基础,再添加合适的 polyfill
,应该可以用来运行部分使用了 node
文件系统的代码。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…