私はちょっとあなたにはもう少し質問がありますが、希望の答えはとてもシンプルになります:)なぜiframeが遅いのですか?
私はリンクとiframeを持つ非常に単純なページを持っているとしましょう。
<body>
<a href="test.html" target="mframe">open link></a>
<iframe name="mframe" [params] />
</body>
リンクをクリックすると、フレームにtest.htmlが読み込まれます。
divとajaxの呼び出しでiframeを変更します。
<body>
<a href="doAjaxCall('test.html')">open link</a>
<div id="main-content"></div>
</body>
doAjaxCallは単に、全体の応答を取得する(JavaScriptを使用して)それを解析し、<体>タグのコンテンツを取得し、メインcontent.innerHTMLにそれを置くためにGET AJAX requsetを使用します。
test.htmlにはhtmlが多く含まれていますが、CSSスタイルもあります(ただし、親ページと同じですので、ajaxソリューションを使用しているときは必要ありません)。
質問:
なぜこのAJAXソリューションがSO速いのですか?私はまだ同じ量のデータをダウンロードしています(test.html全体をダウンロードしています)。
なぜiframeソリューションが遅いのですか?それはブラウザのためにすべての可能なスタイルを再度解析する必要がありますか?または、iframeの他のオーバーヘッドはありますか?
複数のブラウザで同じ動作が見られますか? – ChristianLinnell
実際、私の例はとてもシンプルでした。 :) 実際、私はiframeを使用している大きなサイトにこのソリューションを試していました。私はそれらを削除し、そのajaxソリューションで置き換えます。私が書いたように、私はリンクをajax呼び出しに置き換えただけですが、トラフィックはまだ同じです。 そして、はい、それはすべてのブラウザ(IE/FF/CH/SAF)に間違いなく速いです。私は今見ることができます 唯一の理由は、そのブラウザが再び再びやスタイルを読み込むだけで「メイン・コンテンツ」のdivのinnerHTMLプロパティを交換する必要はありませんです。 ありがとう! Pavol。 – palig
あなたのスタイルシートがlinkタグ経由で呼び出される専用のCSSファイルにある場合、ブラウザはキャッシングを利用して一度だけロードする必要があります。 btw私はあなたのiframeがどれほど遅くなっているか興味があります - 私たちはミリ秒を話していますよね? – Christophe