캐시 설정 방법: jQuery.getcall에서 false
jQuery.get()
의 줄임말입니다.jQuery.ajax()
전화를 받고하지만 내가 설정했을 때cache:false
의 자료에 의하면.get()
call, 서버로 전송되는 것은 false 값을 가진 cache라고 불리는 파라미터입니다.데이터가 포함된 타임스탬프를 서버로 전송하여 캐싱을 방지하려는 의도가 있습니다. 이는 다음을 사용할 경우 발생합니다.cache: false
j에서Query.jax 데이터에서.jQuery.jax 호출을 다시 작성하거나 사용하지 않고 jQuery.jax 호출을 다시 작성하려면 어떻게 해야 합니까?
$.ajaxSetup({
// Disable caching of AJAX responses
cache: false
});
업데이트: 답변해주신 모든 분들께 감사드립니다.여러분 모두 맞습니다.하지만, 저는 수신자에게 캐시하기를 원하지 않는다는 것을 알려주거나, 기본 .jax()에 해당 값을 전송하여 사용자가 어떻게 해야 할지 알 수 있는 방법이 있기를 바랍니다.
I. 지금까지 확인된 세 가지 방법 이외의 네 번째 방법을 찾고 있는 중.
ajaxSetup을 통해 전역적으로 수행
.get call 대신 .ajax call 사용
.getcall에 타임스탬프를 포함하는 새 매개 변수를 추가하여 수동으로 수행합니다.
저는 단지 이 기능이 .getcall에 내장되어야 한다고 생각했습니다.
매개변수를 직접 추가합니다.
$.get(url,{ "_": $.now() }, function(rdata){
console.log(rdata);
});
jQuery 3.0에서는 이제 다음 작업을 수행할 수 있습니다.
$.get({
url: url,
cache: false
}).then(function(rdata){
console.log(rdata);
});
대신에 캐시를 끌 수 있는 AJAX 메서드를 사용해야 한다고 생각합니다.
$.ajax({
url: "test.html",
data: 'foo',
success: function(){
alert('bar');
},
cache: false
});
저에게는 올바른 방법이 나열된 방법일 것입니다.어느 하나ajax
아니면ajaxSetup
. 정말로 사용하고 싶다면get
사용하지 않음ajaxSetup
그런 다음 자신만의 파라미터를 만들어 현재 날짜/시간의 값을 지정할 수 있습니다.
하지만 다른 방법을 사용하지 않는 당신의 동기에 의문을 제기하고 싶습니다.
JQuery 에 ,.get()
에 한해서만url
,data
용),dataType
,그리고.success
콜백을 매개 변수로 사용합니다.여기서 정말로 하고 싶은 일은 jqXHR 개체가 전송되기 전에 수정하는 것입니다.와 함께.ajax()
, 이것은 끝입니다.beforeSend()
방법.근데 그때부터..get()
바로 가기입니다. 허용되지 않습니다.
비교적 쉽게 전환할 수 있을 것입니다..ajax()
로의 전화..get()
그래도 전화는.,국.get()
의 부분집합일 뿐입니다..ajax()
, 따라서 모든 기본값을 사용할 수 있습니다..ajax()
(물론 제외하고는)beforeSend()
).
편집:
:: 지빙스의 대답을 보시오:
아 그래요, 잊어버렸어요.cache
매개변수!하는 동안에beforeSend()
다른 헤더를 추가할 때 유용합니다. 내장된cache
여기서는 파라미터가 훨씬 간단합니다.
아래 메서드를 사용하여 jQuery.get call에서 cache를 false로 설정합니다.
새것을 쓰다Date().getTime(),
동일한 밀리초 내에 여러 개의 요청이 발생하지 않는 한 충돌을 피할 수 있습니다.
아니면
다음은 어떤 jQuery 메서드($.get, $.ajax 등)를 사용하든 관계없이 향후 모든 AJAX 요청이 캐시되지 않도록 합니다.
$.ajaxSetup({ cache: false });
콜백 구문은 더 이상 사용되지 않습니다.
감가상각 통지
jQuery 1.5에 도입된 jqXHR.success(), jqXHR.error() 및 jqXHR.complete() 콜백 메서드는 jQuery 1.8에서 더 이상 사용되지 않습니다.코드가 제거되도록 준비하려면 대신 jqXHR.done(), jqXHR.fail(), jqXHR.always()를 사용합니다.
여기에 현대화된 솔루션이 있습니다.promise
인테
$.ajax({url: "...", cache: false}).done(function( data ) {
// data contains result
}).fail(function(err){
// error
});
저는 게임에 매우 늦었지만, 이것은 다른 사람들에게 도움이 될 것입니다.저는 $.get으로 이와 같은 문제를 해결했습니다. 캐싱을 맹목적으로 끄고 싶지 않았고 타임스탬프 패치가 마음에 들지 않았습니다.그래서 약간의 조사 끝에 캐싱을 사용하지 않는 $.get 대신 $.post를 사용하면 된다는 것을 알게 되었습니다.그렇게 간단합니다.:)
언급URL : https://stackoverflow.com/questions/8841425/how-to-set-cache-false-in-jquery-get-call
'programing' 카테고리의 다른 글
mysql 데이터베이스에서 JSON 배열을 구축하는 방법 (0) | 2023.10.27 |
---|---|
Android에서 보기에 대한 불투명도(Alpha)를 설정하는 방법 (0) | 2023.10.27 |
iPhone에서는 미디어 쿼리가 작동하지 않지만 브라우저 크기에는 문제 없음 (0) | 2023.10.27 |
Oracle 및 Postgre의 쓰기 Skew 변칙SQL이 트랜잭션을 롤백하지 않음 (0) | 2023.10.27 |
c에서 시간 지연을 실행합니다. (0) | 2023.10.27 |