Mootools XHR请求:同步和/或链式
Mootools XHR request: synchronous and/or chained?
我有几个XHR请求,它们由Mootools-Request类处理。这个类提供了一些选项来适当地安排请求的时间。我在做什么:
- XHR:张贴表单数据
- XHR:刷新主窗格
- XHR:刷新子页面
当然,请求2&3必须等待1才能完成。因此,这些都是在onComplete
事件处理程序中触发的。但是,Request类提供了用于处理多个XHR请求的选项。我的问题是关于这两个:
-
选项
link
可以设置为chain
,以便"链接"它们,或者,如Moo文档所示:在请求运行时为启动而进行的任何调用都将被链接起来,并且在当前请求完成后立即进行,一个接一个。
-
选项
async
可以设置为false
,以防止以后的请求执行。根据Moo文档:如果设置为false,则请求将是同步的,并在请求期间冻结浏览器。
除了浏览器冻结部分,还有什么区别?我应该使用哪一个请求1?同步执行它更好吗?这样我就确信在此期间没有其他东西执行?两者都用怎么样,这有意义吗?
好吧。link:chain和async:false之间的区别很简单。
第一条公理-您正在重用您的请求实例,而不是创建新实例。即使不是,它也可以使用async。例如,如果你有async: false
,那么这个代码:
new Request({async:false}).send();
// this one below will not run until the UI thread has finished
new Request({async:false}).send();
// nor will this
somefunc();
如果你使用链:
var req = new Request({link: "chain"});
req.send();
// this won't run until the previous request has completed:
req.send();
// this will run independently of the above and may finish first as
// they are not synchronous and this is a brand new instance.
new Request().send();
链接的请求是异步的,当一个请求结束时,它会触发第二个请求,依此类推,因此您可以有多个请求,而不会同时用所有请求干扰浏览器。
链接的请求不会冻结您的浏览器。
相关文章:
- 在控制器和数据对象之间同步数据
- 同步调用,直到用户通过angular验证为访问者
- javascript函数同步
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 如何将Knockout.JS与服务器已经在DOM中呈现的数据同步
- 音频和动画在javasctipt循环中同步
- 中止POST XHR可靠
- 主线程上的同步XMLHttpRequest已弃用
- 主干网.与Safari同步问题
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- 是否同步加载了LINK元素
- 异步获取数据使用JavaScript同步获取数据
- Dojo XHR将200 OK视为错误
- 以同步方式获取Javascript Promise的值
- Web 工作线程中的同步 XHR 请求是否仍会锁定浏览器
- 服务工作线程是否可以响应同步 XHR 请求
- 处理同步XHR连接错误
- Mootools XHR请求:同步和/或链式
- 同步XHR (AJAX)已弃用