ホームページ > 記事 > ウェブフロントエンド > ajax --- IE ブラウザのキャッシュ メカニズムに関する簡単な説明
この記事では、主に IE ブラウザの ajax のキャッシュ メカニズムについて説明します。この記事では、Ajax がブラウザのキャッシュの問題を解決する方法について説明します。困っている友人は参考にしていただければ幸いです。
IE ブラウザは、同じ URL に対してのみ同じ結果を返します。デフォルトでは、IE は Ajax リクエストの結果をキャッシュするためです。同じ URL アドレスの場合、キャッシュの有効期限が切れる前に、最初のリクエストのみが実際にサーバーに送信されます。ほとんどの場合、部分的な更新を実現するために ajax を使用するため、これには改善の問題が伴います。
最新のデータを毎回取得したい場合は、渡される URL が毎回異なることを確認するだけで済みます。最も簡単な方法は、パラメータを URL に結合することです。乱数を生成するには、数学関数のrandom()メソッドを使用します。
たとえば、Baidu www.baidu.com にアクセスする場合、アドレスは www.baidu.com?t=Math.random(); or?t=new Date().getTime() のように記述できます。 ;
そういえば、ajax の基本的な使い方を復習しておくとよいでしょう。
*Ajax 作成オブジェクト:
var xmlhttp; if (window.XMLHttpRequest){ //IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else{ //IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
*Ajax リクエスト:
//GET请求: xmlhttp.open("GET","test1.txt",true); xmlhttp.send(); //POST请求: xmlhttp.open("POST","demo_post.asp",true); xmlhttp.send();
取得か投稿か?
POST と比較すると、GET はより簡単かつ高速であり、ほとんどの場合に機能します。
ただし、次の場合は POST リクエストを使用してください。
キャッシュ ファイルが使用できない (サーバー上のファイルやデータベースを更新する)
サーバーに大量のデータを送信する ( POST にはデータ量の制限がありません)
不明な文字を含むユーザー入力を送信する場合、POST は GET よりも安定しており、信頼性が高くなります
*Ajax 応答:
サーバーの応答を取得するには、XMLHttpRequest オブジェクトの responseText プロパティまたは responseXML プロパティを使用する必要があります。
ResponseText: 応答データを文字列形式で取得します。
document.getElementById("myp").innerHTML=xmlhttp.responseText;
ResponseXML: XML 形式で応答データを取得します。
サーバーからの応答が XML であり、XML オブジェクトとして解析する必要がある場合。
*Ajax - onreadystatechange:
リクエストがサーバーに送信されると、いくつかの応答ベースのタスクを実行する必要があります。
readyState が変化するたびに、onreadystatechange イベントがトリガーされます。
onreadystatechange イベントでは、サーバー応答を処理する準備ができたときに実行するタスクを指定します。
readyState が 4 でステータスが 200 の場合、応答の準備ができていることを意味します:
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myp").innerHTML=xmlhttp.responseText; } }
追加: ブラウザの問題を解決するための Ajax を見てみましょうキャッシュの問題
Ajax でページの読み込み速度が向上する主な理由は、Ajax による重複データの読み込みを減らすことです。つまり、データの読み込み中にデータがメモリにキャッシュされます。データが読み込まれると、ページが更新されない限り、これらのデータは常にメモリにキャッシュされます。送信された URL が過去の URL と一致する場合、サーバーに送信する必要はありません。サーバーからデータを取得する必要がなくなり、サーバーの負荷が軽減され、ユーザーエクスペリエンスが向上しますが、最新のデータを取得することはできません。読み取られた情報が最新であることを保証するには、そのキャッシュ機能を無効にする必要があります。
解決策は次のとおりです。
① Ajax リクエストを送信する前に、anyAjaxObj.setRequestHeader("If-Modified-Since", "0") を追加します。
② Ajax リクエストを送信する前に、anyAjaxObj.setRequestHeader("Cache-Control", "no-cache") を追加します。
③ URL の後に「fresh= Math.random();」という乱数を追加します。
④ URL の後に時間を追加します:「nowtime= new Date().getTime();」。
⑤ jQuery を使用している場合は、$.ajaxSetup({cache:false}) を使用します。このようにして、ページ上のすべての Ajax はキャッシュ レコードを保存せずにステートメントを実行します。
まとめ
以上は編集者が紹介したIEブラウザのajaxキャッシュの仕組みです。誰にとっても役立ちます。関連チュートリアルの詳細については、AJAX 基本ビデオ チュートリアル、JavaScript ビデオ チュートリアル、bootstrap ビデオ チュートリアルをご覧ください。
以上がajax --- IE ブラウザのキャッシュ メカニズムに関する簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。