繁体   English   中英

Mootools XHR请求:同步和/或链接?

[英]Mootools XHR request: synchronous and/or chained?

我有几个XHR请求,这些请求由Mootools Request类处理。 此类提供一些选项来适当地计时请求。 我在做什么:

  1. XHR:过帐表格数据
  2. XHR:刷新主窗格
  3. XHR:刷新子窗格

当然,请求2和3必须等待1完成。 因此,这些是在onComplete事件处理程序中触发的。 但是,Request类提供了用于处理多个XHR请求的选项。 我的问题是关于这两个:

  1. 可以将选项link设置为chain ,以“链接”它们,或者按照Moo docs的说明:

    在请求运行期间进行的任何开始调用都将被链接起来,并且将在当前请求完成后立即进行。

  2. 可以将选项async设置为false ,以防止以后执行请求。 根据Moo文​​档:

    如果设置为false,则请求将是同步的,并在请求期间冻结浏览器。

除了浏览器冻结部分之外,到底有什么区别? 我应该使用哪个请求号。 1? 同步执行是否更好,所以我确定在此期间没有其他执行程序吗? 以及同时使用两者,这有意义吗?

好。 link:chain和async:false之间的区别很简单。

第一个公理-您正在重用您的请求实例,而不是创建一个新的实例。 即使您不是,它也可以与异步一起使用。 例如,如果您有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();

链接的请求是异步的,当一个请求结束时会触发第二个请求,依此类推,因此您可以拥有多个请求,而不会同时阻塞浏览器和所有请求。

链接的请求不会冻结您的浏览器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM