代码之家  ›  专栏  ›  技术社区  ›  Raffaele

使用包装闭包模拟AJAX延迟

  •  3
  • Raffaele  · 技术社区  · 15 年前

    /*
     * 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 回复  |  直到 14 年前
        1
  •  1
  •   Sanjay Ginde    15 年前

    这对我有效(使用原型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请求更新它。