0

テキストファイルの本がたくさんあります。

本の索引をウェブサイトに掲載しました。

理論は次のとおりです。その本全体を含むテキスト ファイルから、そのインデックスから本の一部を読み込みます。

本の索引 (たとえば、3 つの索引があります):

<ul>
   <li><a onClick="return LoadThis('a1')">INDEX-1</a><div id="loader1" ></div></li>
   <li><a onClick="return LoadThis('a2')">INDEX-2</a><div id="loader2" ></div></li>
   <li><a onClick="return LoadThis('a3')">INDEX-3</a><div id="loader3" ></div></li>
</ul>

JavaScript コード:

var loadUrl = "http://www.website.com/books/the-book.php";

function LoadThis(link_anchor)
{
var loader="#loader"+link_anchor.substring(1);
$(loader).html(ajax_load).load(loadUrl+" #"+link_anchor);

$(loader).addClass('ajax-active');
}

-Book.PHP ファイル

<div id="a1"><p>Index-1 texts...</p></div>
<div id="a2"><p>Index-2 texts ....</p></div>
<div id="a3"><p>Index-3 texts ....</p></div>

問題: ローディングは通常悪くありません! そしてそれらの負荷はうまく機能しています。しかし...

インデックスの数と The-Book.php のファイル サイズが大きくなると、小さな本よりも読み込みが遅くなります。

質問: AJAX LOAD 関数を使用したプログラミング方法は標準的な方法ですか?

これを行うための、より標準的で高速な方法はありますか?

私を助けてください。

4

1 に答える 1

3

.load ()自体を操作することは決して悪い習慣ではありませんが、あなたの場合、それは本当に理想的ではありません。

.load()でページをフェッチし、挿入する部分を識別するセレクターを指定すると、ファイルのその部分のみがダウンロードされると考えるかもしれません。セレクターがファイル内のどこにあるか (またはセレクターが複数の場所にある場合) を jQuery が知る方法がないため、ファイルの最初 (または最後) の部分だけが必要な場合でも、ファイル全体をダウンロードする必要があります。

そのため、大きな本 (たとえば、数百キロバイト) があり、本にキャッシュが設定されていない場合、ページのすべてのセクションを埋めるために、かなりの量のデータを数回ダウンロードする必要があります。

本当に部分的な読み込みを行いたい場合は、ハードドライブに個別のファイルを作成し、毎回各部分の正しいファイルを読み込む必要があります。または、php ファイルで結果をフィルター処理して、要求された部分のみを返すようにすることもできます。

PHPを使用してフィルタリングするというアイデアを採用したい場合は、How do you parse and process HTML/XML in PHP? を参照してください。html/xml の解析の詳細については。

于 2013-11-04T08:07:38.127 に答える