为什么javascript中的同步模块加载很糟糕

时间:2015-04-26 17:36:58

标签: javascript ajax asynchronous synchronous

我知道主线程上的同步ajax调用已被弃用,但我仍然想知道为什么。

如何在异步模块加载中归档此内容:get('moduleDependency').foo();

我想至少在开发中使用这种同步调用来加速整个开发圈。生产中的模块已经连接成一个文件,根本不会触及同步加载功能。

我的同步模块加载器(~80 loc)解决了依赖关系等问题。我把它改写为异步加载,它工作得很好......但是我不得不放弃使用代码:get('moduleDependencie').foo();

那真的很乱!

如何使用异步加载进行此类调用?或者我只是必须在将来与主线程上的while(true)函数一起使用异步加载 - 直到他们禁止主线程上的循环?

1 个答案:

答案 0 :(得分:0)

只要未完成同步调用或未达到超时,用户就不可能与页面进行交互。所以它可以挂起,在最坏的情况下,用户必须重新启动他的浏览器。异步编程和脚本基于回调。您只需将方法绑定到AJAX-Request的成功处理程序即可。你可以使用

success:function(result){
//do something
}

success: myfunction
[...]
function myfunction(result){
//do something
}

异步代码完成后,将调用此方法。因此,将与AJAX请求中的数据一起使用的所有内容放入此方法中。