programing

캐시 설정 방법: jQuery.getcall에서 false

newsource 2023. 10. 27. 21:58

캐시 설정 방법: jQuery.getcall에서 false

jQuery.get()의 줄임말입니다.jQuery.ajax()전화를 받고하지만 내가 설정했을 때cache:false의 자료에 의하면.get()call, 서버로 전송되는 것은 false 값을 가진 cache라고 불리는 파라미터입니다.데이터가 포함된 타임스탬프를 서버로 전송하여 캐싱을 방지하려는 의도가 있습니다. 이는 다음을 사용할 경우 발생합니다.cache: falsej에서Query.jax 데이터에서.jQuery.jax 호출을 다시 작성하거나 사용하지 않고 jQuery.jax 호출을 다시 작성하려면 어떻게 해야 합니까?

$.ajaxSetup({
    // Disable caching of AJAX responses
    cache: false
});

업데이트: 답변해주신 모든 분들께 감사드립니다.여러분 모두 맞습니다.하지만, 저는 수신자에게 캐시하기를 원하지 않는다는 것을 알려주거나, 기본 .jax()에 해당 값을 전송하여 사용자가 어떻게 해야 할지 알 수 있는 방법이 있기를 바랍니다.

I. 지금까지 확인된 세 가지 방법 이외의 네 번째 방법을 찾고 있는 중.

  1. ajaxSetup을 통해 전역적으로 수행

  2. .get call 대신 .ajax call 사용

  3. .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