jquery의 getJson 메서드는 서버에 첫 번째 요청 후 캐시에서 동일한 요청을 직접 읽으며, 더 이상 데이터베이스를 요청하지 않습니다.
해결 방법은 다음과 같습니다:
1 통화마다 URL을 다르게 설정하세요 방법: 매개변수에 임의 수를 추가합니다. 예시 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} 예시 2: "xxx.aspx?randID="+Math.random 예시 3: "xxx.aspx?randID="+ escape(new Date()) 2 캐시를 False로 설정하기 $.Ajax uncached version: $.Ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ 경고(MSG);
} }); 3. labels.html 파일 상단에 다음 문장을 포함하세요:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. load 함수는 HTML뿐만 아니라 labels.php 같은 스크립트도 호출할 수 있으며, php 파일의 헤더 함수를 사용할 수 있습니다:
<?php
헤더("Cache-Control: no-cache, must-revalidate");
?> 5 get 대신 post를 사용하는 방법. 게시물 방식을 사용할 때는 다음 사항을 주의 깊게 살펴야 합니다: 헤더의 Context-Type을 application/x-www-form-urlencode로 설정하여 서버가 엔터티에 매개변수 변수가 존재함을 인식하도록 합니다. 보통 XmlHttpRequest 객체의 SetRequestHeader("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 메서드로 전송됩니다. 예: xmlHttp.send(name); 만약 get 메서드라면, 직접 xmlHttp.send(null);
서버 측 요청 매개변수는 Get과 Post를 구분합니다. 만약 get(get) 메서드라면, $username = $_GET["username"]; 만약 게시물 방식이라면, $username = $_POST["username"]; 6 서버 측에 헤더("Cache-Control: no-cache, must-reva lidate")를 추가; 7 ajax 요청 전송 전에 xmlHttpRequest.setRequestHeader("If-Modified-Since","0")를 추가; 8 ajax 요청 전송 전에 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache")를 추가;
|