2010-11-24 18 views
0

サーバーへのXHR呼び出しが多く、サーバーへのXHR呼び出しが多数含まれているA iframeがあるWebページを考えてみましょう。 この呼び出しの多くは同じ(冗長)です。私は単一のコミュニケーションインタフェース(すなわち、javascriptオブジェクトのメソッドセット)を持っています。プログラムによるXHR/Ajax応答のキャッシングと無効化

サーバコールを最適化するにはどうすればよいですか?レスポンスをキャッシュできますか? (応答を変更する可能性のある何らかのアクションが発生したときに、格納されたレスポンスを無効にできます)また、このキャッシュはページの更新後にクリアする必要があります。そのようなコンポーネント/テクニックはありますか?

よろしく、

答えて

-1


Nachiketメモ化のいくつかの形。 注:XHR実装に対応するには、次のコードを変更する必要があります。 コードを提示していないので仮定を立てていませんでした。

var cacheXHRWrapper = function (url , handler) { 

    var cache = {}; 
    var queued = {}; 
    var pending = {}; 

    if (cache[ url ]) { 

     handler(cache[ url ]); 

    } else { 

     queued[ url ] || (queued[ url ] = []); // I know, call me lazy. 
     queued[ url ].push(handler); 

     if (!pending[ url ]) { 

     // might want to adjust this to comply to your XHR implementation 
     XHR_IMPL.request(url , function (response) { 

      // cache response 
      cache[ url ] = response; 

      // serve all queued handlers. 
      var fn = queued[ url ].shift(); 
      while (fn) { 
       fn(response); 
       fn = queued[ url ].shift(); 
      } 

     }); 

     pending[ url ] = true; 

     } 

    } 
} 

ボーナスは、すでに実行されているハンドラ(URL単位)を要求します。

関連する問題