我最近读过这篇文章:" ECMAScript 6模块必须独立于引擎是否同步加载模块(例如在服务器上)或异步加载模块(例如在浏览器中)。"
为什么JS分别在服务器和浏览器中异步和同步加载?这是故意的吗?
答案 0 :(得分:2)
服务器更喜欢同步导入模块,因为它们是从文件系统快速加载的。通常,同步代码更易于编写和读取。在Node中能够做到这一点非常棒:
var myModule = require("mymodule"),
foo = require("foo");
myModule.doThing(foo);
而不是
require("mymodule", function(err, myModule) {
require("foo", function(err, foo) {
myModule.doThing(foo);
});
});
相反,异步代码通常在浏览器中更受欢迎,因为网络加载可能需要更长的时间,而同步执行会阻止UI。最好保持浏览器的线程自由响应用户(并显示加载动画等),同时在后台安静地加载模块并异步响应它们的完成。