我才发现,原来在道场有没有办法来设置XHR呼叫的应用范围超时。 从理论上讲,我可以很容易地创建自己的包装,以XHR并使用它。 但是,我使用JsonRest店(目的是永远只使用存储在应用与数据进行交互)。
令人惊讶的是,有没有办法来设置超时JsonRest Dojo中调用。
http://mail.dojotoolkit.org/pipermail/dojo-interest/2012-April/065594.html
有没有一种方法重载默认XHR调用,而不必让我自己JsonRest副本...? 我可以用例如方面做呢? 想法/评论?
最简单的方法可能是一些很好的旧猴子修补 。
var old_xhr = dojo.xhr;
dojo.xhr = function(options) {
var opts = options || {};
opts.timeout = Math.min(opts.timeout || Number.MAX_VALUE, 1000);
return old_xhr(options);
}
这将适用于1秒的最大超时为所有用户dojo.xhr
方法。 它采用了AMD装载机用毫无根据的道场,每一个模块明确要求有点棘手dojo/_base/xhr
,但它可以通过使用一些道场装载机的先进锯齿功能映射做dojo/_base/xhr
你自己模块。
文章来源: Set default application-wide timeout for xhr requests in Dojo (so that JsonRest calls are affected too)