使用包装闭包模拟AJAX延迟

时间:2010-08-04 08:55:03

标签: javascript ajax prototypejs closures latency

我想包装Prototype Ajax.Request以模拟AJAX延迟。我的意思是,使用一个闭包和Prototype的delay()工具,但显然我的代码有问题

/*
 * Purpose: simulate AJAX latency when developing on localhost
 * What's wrong?
 */
Ajax.Request = (function(original) {
  return function(url, options) {
          return original.delay(1, url, options);
  };
}) (Ajax.Request);

1 个答案:

答案 0 :(得分:1)

这对我有用(使用原型1.6.1):

Ajax.Request.prototype._initialize = Ajax.Request.prototype.initialize;

Ajax.Request.prototype.initialize = function ($super, url, options) {
  return this._initialize.bind(this).delay(2, $super, url, options);
};

我认为Ajax.Request.prototype.initialize的方法签名在旧版本的原型中是不同的(即没有$ super参数)。

这将为所有Ajax请求更新它。