Web 開発 (具体的には jQuery) では、事前にページを「プリロード」し、jQuery を使用して DOM を操作したり、その逆を行ったりする方がよいでしょうか。
以下の質問です。
<div id="item1"></div>
<div id="item2"></div>
<div id="element><!-- AJAX --></div>
$("#item1").click(function(e) {
$("#element").load("ajax/response/containing/HTML_1.php");
});
$("#item2").click(function(e) {
$("#element").load("ajax/response/containing/HTML_2.php");
});
.
.
.
対
<div id="item1"></div>
<div id="item2"></div>
<div id="element>
<div id="item1_content" style="display:none"><? include('/path/to/html_1'); ?></div>
<div id="item2_content" style="display:none"><? include('/path/to/html_2'); ?></div>
</div>
$("#item1").click(function(e) {
$("#item1_content").show();
$("#item2_content").hide();
//Possibly do an AJAX call that simply returns JSON data and do something with it
});
$("#item2").click(function(e) {
$("#item2_content").show();
$("#item1_content").hide();
//Possibly do an AJAX call that simply returns JSON data and do something with it
});
.
.
.
バックエンドはフロントエンドが操作する JSON データのみを返すため、2 番目の方法の方がより洗練されていることがわかります。最初の方法では、PHP スクリプトは実際に HTML を返す必要があります。
ダイアログを表示するなどの単純なことにはAJAX呼び出しが必要になるため、最初の方法はサーバーにさらに打撃を与えると思います(すべてのコンテンツが方法2に含まれているため、必要がなかったとしても)。
2 番目の方法は、すべてのデータ操作を JS で行っているため、クライアントへの負担が大きくなるようです。ただし、最初の方法は HTML 応答を div にダンプし、DOM を再フォーマットするため、それが同じくらい激しいかどうかはわかりません。
読み込み時間の影響はどうですか? 最初の方法は、表示されることのない要素を含む巨大なドキュメントを基本的にレンダリングする必要がありますが、1 回のリクエストで行います。2 番目の方法は、100 万回のリクエストを行う必要がありますが、DOM は小さくなります。