我知道主线程上的同步ajax调用已被弃用,但我仍然想知道为什么。
如何在异步模块加载中归档此内容:get('moduleDependency').foo();
?
我想至少在开发中使用这种同步调用来加速整个开发圈。生产中的模块已经连接成一个文件,根本不会触及同步加载功能。
我的同步模块加载器(~80 loc)解决了依赖关系等问题。我把它改写为异步加载,它工作得很好......但是我不得不放弃使用代码:get('moduleDependencie').foo();
那真的很乱!
如何使用异步加载进行此类调用?或者我只是必须在将来与主线程上的while(true)
函数一起使用异步加载 - 直到他们禁止主线程上的循环?
答案 0 :(得分:0)
只要未完成同步调用或未达到超时,用户就不可能与页面进行交互。所以它可以挂起,在最坏的情况下,用户必须重新启动他的浏览器。异步编程和脚本基于回调。您只需将方法绑定到AJAX-Request的成功处理程序即可。你可以使用
success:function(result){
//do something
}
或
success: myfunction
[...]
function myfunction(result){
//do something
}
异步代码完成后,将调用此方法。因此,将与AJAX请求中的数据一起使用的所有内容放入此方法中。