>  기사  >  웹 프론트엔드  >  jQuery.getJSON의 캐싱 문제를 해결하는 몇 가지 방법

jQuery.getJSON의 캐싱 문제를 해결하는 몇 가지 방법

巴扎黑
巴扎黑원래의
2017-07-03 09:43:361228검색

오늘 테스트 작업을 하다가 jquery의 getJson 메서드를 사용하면 Firefox에서 실행 시 반환된 결과를 얻을 수 있다는 문제를 발견했습니다. 그런데 IE8에서 테스트해보니 요청이 전송되지 않은 것으로 나타났습니다. 결과적으로 우여곡절을 겪은 끝에 인터넷에서 한 기사에 대한 해결책을 찾아서 일부 수정했습니다.

1 통화마다 URL을 다르게 만듭니다

방법: 매개변수에 임의의 숫자를 추가합니다.
예 1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",이름:"john",random:Math.random()} ,function(responseText){}
예 2:
"xxx.aspx?randID="+Math.random
예 3:
"xxx.aspx?randID="+ escape(new Date ())
2 캐시를 False로 설정하세요
$.ajax does notcacheversion:

$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});


3 labels.html 파일 상단에 다음 명령문을 추가하세요. :

e57b118234dbe923c36926980f7b4a4e

16a621c4c951a05d67edbc930ad13908
4.load function은 HTML을 호출할 수 있을 뿐만 아니라 labels.php와 같은 스크립트도 호출할 수 있습니다. PHP 파일의 헤더 함수를 사용할 수 있습니다:

< ;?php

header("캐시 제어: 캐시 없음, must-revalidate");

?>
5 get 메소드 대신 post를 사용하세요.
Post 메소드 사용 시 주의사항:
헤더의 Context-Type을 application/x-www로 설정하세요. -form- urlencode는 일반적으로 XmlHttpRequestobjectSetRequestHeader("Context-Type","application/x-www-를 사용하여 엔터티에 매개변수 변수가 있음을 서버가 인식하도록 합니다. form-urlencoded;").

예: xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

매개변수는 이름/값 일대일입니다. - 하나의 대응 키-값 쌍, 각 값 쌍은 앰퍼샌드로 구분됩니다. 예를 들어 var name=abc&sex=man&age=18, var name=update.php?abc&sex=man&age=18에 주의하세요. var name=?abc&sex=man&age=18 쓰기 방법이 모두 잘못되었습니다.

매개변수는 Send(매개변수) 방법으로 전송됩니다. 예: Get과 Post를 구별합니다. get 방법인 경우 $username입니다. = $_GET["username"]; post 메소드인 경우 $username = $_POST["username"]; 6 서버 측에 헤더("를 추가합니다. Cache-Control: no-cache, must -reva lidate");

7 Ajax 요청을 보내기 전에 추가하세요. xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
8 ajax가 요청을 보내기 전에 추가 xmlHttpRequest.setRequestHeader("캐시 제어","캐시 없음");

위 내용은 jQuery.getJSON의 캐싱 문제를 해결하는 몇 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.