友達のサイトを作りました。彼は、音楽プレーヤーがページの読み込みを通じて音楽を再生し続けることを望んでいたため、ajax (jQuery を使用) を介してコンテンツをページに読み込むことにしました。それは正常に動作し、javascript がない場合は適切にフォールバックし、戻る/進むボタンはうまく機能しますが、サーバー上では非常に遅くなります。
いくつかのポイント:
最初のページの読み込みはかなり高速です。Chrome 開発者コンソールは、「index.php」が約 2.5 秒で読み込まれることを示しています。クエリ文字列パラメーターがどのページが読み込まれるかを決定するように設定しましたが、この時間枠はそれらすべてに対してほぼ正確です。ホームページの場合、8.4KB のデータが読み込まれます。
ajax リクエストを介してコンテンツを読み込むと、ダウンロードされるデータのサイズに関係なく、約 20 秒かかります。この方法でロードされるデータの最小量は約 500 バイトです。ここには明らかにミスマッチがあります。
そのため、Chrome は、費やされた時間の大部分が「待機中」であることを教えてくれます。これは、サーバーがリクエストを処理していることを意味します。つまり、私のコードに時間がかかっているか、サーバーで何かおかしなことが起こっていることを意味しているだけだと思います。かなり最小限なので、私のコードではないと思います。
$file = "";
if (isset($_GET['page'])) {
$file = $_GET['page'];
} else if (isset($_POST['page'])) {
$file = $_POST['page'];
} else {
$file = "home";
}
$file = 'content/' . $file . '.php';
if (file_exists($file)) {
include_once($file);
} else {
include_once('content/404.php');
}
これは、content_loader.php
私の JavaScript (このシナリオでは) が「ページ」パラメーターと共に GET 要求を送信するファイルにあります。HTML マークアップが返され、ページの DIV に配置されます。
私はjQuery .get()
省略形の関数を使用しているので、そこで何かを台無しにすることは考えられません。遅延はサーバーからのデータを待っているため、Javascript の問題ではないと確信しています。また、データが非常に小さい場合でも、約 20 秒かかります。
現在、サーバーに問題があると考えていますが、javascript を介して行われたリクエストが、ブラウザーを介して従来の方法で行われたリクエストよりもはるかに遅くなる理由がわかりません。追加の注意として、一部のコンテンツ ページは MySQL データベースに接続しますが、一部は接続しません。ページの処理に必要なものや、ページが構成するデータの量は問題ではないようで、約 20 秒かかります。
私は途方に暮れています...これを説明できる何かを知っている人はいますか? また、このような質問をするのに適切な場所でない場合は申し訳ありませんが、他の場所も質問に特に適しているとは思えませんでした。