ホームページ >バックエンド開発 >PHPチュートリアル >ajax2—キャッシュの問題を解決する—php (28)
5. ajax クイックスタート
ajaxコード:
PHP プログラム:
6. データを送信する
Ajax getリクエストを行う場合、送信するデータをURLの末尾に追加する必要があります
Ajaxポストリクエストを行う場合、送信するデータをsendメソッドのパラメータに入れる必要があります
Ajaxコード:
PHP コード:
リクエストされた URL を意図的に間違って記述した場合でも、存在しない URL がリクエストされた場合でも、ajax オブジェクトのステータス コードは最終的に 4 になり、対応するステートメントが実行されることがわかりました。エラーページである場合、対応するステートメントは実行すべきではありません
それに対応する変更を加えます
2つの数値の合計を計算するにはajaxを使用してください
7. キャッシュの問題を解決する
上記の質問:
PHPの加算を減算に変更します
以前のリクエストパラメータが使用されている場合は、まだ加算であることがわかります。新しいリクエストパラメータの場合は、減算です。
解決策 1: 乱数
Math.random();
今回リクエストされたURLが一意になるように、URLの後にjs乱数を生成し、リクエストするたびに最新のデータが返されます
ただし、この方法ではキャッシュの問題が根本的に解決されるわけではなく、大量のキャッシュ ファイルが生成されるだけであることがわかっています
もう 1 つ: 乱数は、この URL が完全に一意であることを保証するものではありません
解決策 2:
時間
new Date().getTime() //ミリ秒のタイムスタンプを取得します
上記のメソッドは、URL にタイムスタンプを直接追加して、現在の URL を一意にします。
実行に関しては、このメソッドは常に一意になります。
ただし、それでも一時ファイルの下に大量のキャッシュ ファイルが生成されます。
解決策 3. リクエストヘッダーを設定する
setRequestHeader("If-Modified-Since","0");
原則: http リクエストを送信する前に、ajax オブジェクトを使用して http リクエスト ヘッダー情報を設定し、現在リクエストされているリソースの最終変更時刻が「0」であることをサーバーが取得した後、最後の時刻と比較します。サーバー上のファイルの変更時刻を比較し、異なる場合は最新の実行結果を返します。
このようにすると、最終的にキャッシュ ファイルは常に 1 つだけになります。
解決策4. 応答ヘッダーを設定します
header("キャッシュ制御: キャッシュなし、再検証が必要");
PHP の header 関数を使用して、応答ヘッダーにデータを書き込みます。書き込まれる内容は、クライアントにこの結果をキャッシュしないように指示することです。
このアプローチでは、キャッシュ ファイルを生成せずにキャッシュの問題を根本的に解決できます。
質問例:
ユーザー名が使用できるかどうかを確認してください
上記では、関連する内容も含めて、ajax2 - キャッシュの問題の解決 - php (28) を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。