2011-08-08 16 views
0

2つのフレームを含むページで作業しています。各フレームはページを呼び出し、スクリプトタグ内の同じjavascriptファイルを呼び出します。ブラウザによっては、他のフレームが呼び出しを行うまでにjsファイルがキャッシュされることがあり、キャッシュから取得することがあります。しかし、それは時々それが2つのコピー、各フレームのために1つをダウンロードするようである。私はそれが親ページから一度スクリプトを呼び出す価値があるかどうかを把握しようとしていて、各フレームのページにそのようにアクセスさせるようにしています。それで、ブラウザからjsファイルをダウンロードする速さが問題になります。もし他のフレームがキャッシュからそれを取得するのであれば?この上の主要なブラウザのための通常のプロトコルは何ですか?親ページ内の2つのフレームから同じJSファイルをダウンロード

ありがとうございました!

答えて

0

スクリプトは、そのページに子iframeがあるかどうかを調べることができます。その場合、スクリプトブロックを(同じSRCを使用して)子ドキュメントに動的に追加します。この方法では、メインのものが常に最初にロードされ、子は常にキャッシュを使用します。

+0

親から呼び出された.jsファイルの読み込みが完了するまで、フレームの内容はダウンロードされませんか? – user884510

+0

それは良い質問です。ブラウザは、ドメインごとにオープンなHTTP接続数が限られています(通常は4)。したがって、メインページのレンダリングが完全に終了する前にiframeをダウンロードしてしまう可能性があります。あなたはFirebugで伝えることができるはずです。 –

+0

FirebugとChrome Dev Toolsを見ると、フレームが表示され、親Jsファイルと同時にダウンロードされることがあります。 – user884510

0

私はそれについてあまり心配しません。 2番目のフレームがファイルを必要とする時間がキャッシュにあれば、それはキャッシュを使用し、そうでなければキャッシュも使用します。それぞれのブラウザと各ブラウザの各バージョンは、ファイルのキャッシュを別々に処理するので、それを忘れて、各フレームを独自のインクルードで独自のページとしてコーディングし、ブラウザにそれらをキャッシュすることを心配させます。

+0

私はあなたが言っていることを見ていますが、それはかなり重大なJSファイル(100 + k)であり、可能な速度向上を探しています。そこで親ページにjsファイルを呼び出し、「トップ」を追加することを検討していました。 jsファイルにアクセスするフレームページ内の各関数呼び出しに渡します。 – user884510

+0

ファイルがキャッシュされると、「トップ」は必要ありません。ページにはすでにローカルになっています。私のテクニックは、それが一度だけロードされることを保証します。 –

+0

それは本当です。ありがとう! – user884510

関連する問題