キャッシュの問題:
キャッシュの問題とは何ですか?つまり、ブラウザの入力コンテンツが同じ場合、つまりリクエストされた URL が同じ場合、コンテンツが 2 回同じ場合、ブラウザはサーバーと対話しません。
解決策: 要求された URL にタイムスタンプを追加します。
私のテストでは、ユーザー名が 2 回入力された場合、IE と 360 はサーバーと対話しません。同じユーザー名が 2 回入力された場合でも、Firefox はサーバーと対話します。
つまり、Firefox ではサーバーから返される一時値は毎回 1 ずつ増加しますが、IE と 360 では変化しません。したがって、タイムスタンプを追加しても、これら 3 つのブラウザではキャッシュの問題が発生しなくなります。
変更されたコード:
AJAXServer.java
キャッシュの問題
//IEではキャッシュ問題に追加したテストコードの入力内容は変わらず、360回の回数は増えないが、Firefoxでは増える
Integer inte= (Integer) request .getSession().getAttribute("total");
int temp=0;
if(inte==null){
}else{
temp=inte .intValue() 1;
}
request.getSession().setAttribute("total",temp);
上記のコードを AJAXServer.java に追加し、temp を追加します。 out.println 中に変数を取得し、それをクライアントに返します。
このように、クライアントの一時値が追加されると、クライアントとサーバーが対話することを意味し、それ以外の場合は対話が行われません。
verify.js
//URL アドレスにタイムスタンプを追加し、ブラウザを騙してキャッシュを読み取らない
function ConvertURL(url){
//タイムスタンプを取得
var timestamp=(new Date().valueOf());
//タイムスタンプ情報を URL に結合します
//url="AJAXServer"
if(url.indexOf("? ")> ;=0){
url=url "&t=" タイムスタンプ;
}else{
url=url "?t= タイムスタンプ;
URL を返します。
function verifyCache(){
var url="AJAXServer?name=" $("#username").val();
url=convertURL(url); //キャッシュ
$。 get(url,null,function(data){
$("#result").html(data);
});
}
検証とキャッシュの問題について質問されました。問題の説明を容易にするために、サーバー側のテキスト データを受信するために使用される検証方法は、jquery でカプセル化された ajax です。
》》同様に、ajax.html で呼び出されるメソッドを変更し、上記のスクリプトで名前を verifyCache() に変更することを忘れないでください。
中国語の問題:
解決策は 2 つあります:
最初のタイプ: ページ側で encodeURI を 1 回使用し、サーバー側で String name=new String(old.getBytes("iso8859-1"),"UTF-8") を使用します。 🎜>
コードをコピーします
$ ("#result").html( data);
});
》》》上記のメソッドをverify.jsに追加し、さらに
String name=new String(old.getBytes(")を追加します。 iso8859-1"),"UTF-8 ");
が AJAXServer.java クラスの適切な場所に追加されます。たとえば、PrintWriter コードの後に置くだけです。
同様に、最初の方法を使用する場合は、ajax.html で呼び出されるメソッドを変更し、上記のスクリプトで名前を verifychinese1() に変更することを忘れないでください。
2 番目の方法: ページ上で encodeURI を 2 回使用します。側とサーバー側で String name= URLDecoder.decode(old,"UTF-8");
中国語 2
コードをコピーします。 🎜>
コードは次のとおりです:
}
》》》verify.js に上記のメソッドを追加し、
String name= URLDecoder.decode(old, "UTF-8"); を追加します。 🎜>
を AJAXServer.java クラス内の適切な場所にコピーします。たとえば、PrintWriter コードの後に置くだけです。
同様に、2 番目のメソッドを使用する場合は、ajax.html で呼び出されるメソッドを変更し、上記のスクリプトで名前を verifychinese2() に変更することを忘れないでください。
ソース コードが必要な場合は、次のように変更できます。伝言を残す。
数日間勉強して、ajax の動的検証についての基本を理解しました。今後の状況に応じて、対応する内容を追加していきます。