0

サーバーへの XHR 呼び出しが多数ある Web ページと、サーバーへの XHR 呼び出しが多数含まれている iframe を考えてみましょう。この呼び出しの多くは同じです (冗長)。私は単一の通信インターフェース(つまり、JavaScriptオブジェクトのメソッドのセット)を持っています。

サーバー呼び出しを最適化するには? 応答をキャッシュできますか? (応答を変更する可能性のあるアクションが発生したときに、保存された応答を無効にすることができます)、また、このキャッシュはページの更新後にクリアする必要があります。利用可能なそのようなコンポーネント/技術はありますか?

よろしく、
ナチケット

4

1 に答える 1

-1

メモ化の一種。注: 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 ごとに) キューに入れます。

于 2010-11-24T14:41:39.587 に答える