3

我想包装 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);
4

1 回答 1

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 请求更新它。

于 2010-08-04T14:36:49.823 回答