> 웹 프론트엔드 > JS 튜토리얼 > Ajax 연구 노트 4_jquery의 jquery

Ajax 연구 노트 4_jquery의 jquery

WBOY
풀어 주다: 2016-05-16 18:00:48
원래의
892명이 탐색했습니다.

캐시 문제:
캐시 문제란 무엇인가요? 즉, 브라우저의 입력 내용이 동일할 경우, 즉 요청된 URL이 동일할 경우 브라우저는 캐시를 읽습니다. 내용이 두 번 동일할 경우 서버와 상호 작용하지 않습니다.
해결책: 요청한 URL에 타임스탬프를 추가하세요.
테스트를 통해 IE와 360은 사용자 이름을 두 번 입력하면 서버와 상호 작용하지 않습니다. 사용자 이름을 두 번 입력해도 Firefox는 계속 서버와 상호 작용합니다.
즉, Firefox에서 서버가 반환하는 임시 값은 매번 1씩 증가하지만 IE와 360은 변경되지 않습니다. 따라서 타임스탬프를 추가해도 더 이상 이 세 가지 브라우저에서 캐싱 문제가 발생하지 않습니다.
수정된 코드:
AJAXServer.java
캐싱 문제

코드 복사 코드는 다음과 같습니다. 🎜>
//캐싱 문제에 추가된 테스트 코드의 입력 내용은 IE에서는 그대로이고 360회 횟수도 늘어나지 않지만 파이어폭스는 늘어나게 됩니다.
Integer inte=(Integer) 요청 .getSession().getAttribute("total");
int temp=0;
if(inte==null){
temp=1
}else{
temp=inte .intValue() 1;
}
request.getSession().setAttribute("total",temp);

위 코드를 AJAXServer.java에 추가하고 temp를 추가합니다. out.println 동안 변수를 지정하고 이를 클라이언트에 반환합니다.
이렇게 클라이언트의 임시 값이 추가되면 클라이언트와 서버가 상호 작용한다는 의미이고, 그렇지 않으면 상호 작용이 없다는 의미입니다.
verify.js

코드 복사 코드는 다음과 같습니다.

//URL 주소에 타임스탬프 추가, 브라우저를 속이고 캐시를 읽지 않음
함수 변환URL(url){
//타임스탬프 가져오기
var timestamp=(new Date().valueOf());
//타임스탬프 정보를 URL에 연결
//url="AJAXServer"
if(url.indexOf("? ")> ;=0){
url=url "&t=" 타임스탬프;
}else{
url=url "?t=" 타임스탬프;
return 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()로 변경하는 것을 잊지 마세요.
중국어 문제:
두 가지 해결책이 있습니다:
첫 번째 유형: 페이지 측에서 encodeURI를 한 번 사용하고 서버 측에서 String name=new String(old.getBytes("iso8859-1"),"UTF-8")을 사용하십시오.
중국어 1



코드 복사 코드는 다음과 같습니다. function verifychinese1{
var url="AJAXServer?name =" encodeURI($("#username ").val());
url=convertURL(url); //캐시
$.get(url,null,function(data){
$ ("#result").html( data);
});
》》》 verify.js에 위 메소드를 추가하고
String name=new String(old.getBytes(")도 추가합니다. iso8859-1"),"UTF-8 ");


이 AJAXServer.java 클래스의 적절한 위치에 추가됩니다. 예를 들어 PrintWriter 코드 뒤에 넣으면 됩니다.
마찬가지로 첫 번째 방법을 사용할 때는 ajax.html에서 호출되는 메서드를 수정하고, 위 스크립트에서 이름을 verifychinese1()로 변경하는 것을 잊지 마세요.
두 번째 방법: 페이지에서 encodeURI를 두 번 사용하세요. 쪽 및 서버 쪽에서 String name= URLDecoder.decode(old,"UTF-8")
중국어 2



코드 복사 코드는 다음과 같습니다. function verifychinese2(){
var url="AJAXServer?name=" encodeURI(encodeURI($("#username").val ()));
url= ConvertURL(url); //캐시
$.get(url,null,function(data){
$("#result").html(data);
});
}
》》》 verify.js에 위 메소드를 추가하고
String name= URLDecoder.decode(old, "UTF-8")

AJAXServer.java에 클래스의 적절한 위치를 지정합니다. 예를 들어 PrintWriter 코드 뒤에 넣으면 됩니다.
마찬가지로 두 번째 방법을 사용할 때에는 ajax.html에서 호출되는 메소드를 수정하는 것을 잊지 마시고, 위 스크립트에서 verifychinese2()로 이름을 변경해주세요.
소스코드가 필요하신 분은 이용하시면 됩니다. 메시지를 남겨주세요.
며칠 공부를 한 후, Ajax의 동적 검증에 대한 기본적인 이해가 되었으며 앞으로 상황에 따라 해당 내용을 추가하겠습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿