programing

getJ에 대해 캐시 false를 설정하는 방법jQuery의 SON?

oldcodes 2023. 9. 16. 09:52
반응형

getJ에 대해 캐시 false를 설정하는 방법jQuery의 SON?

사용중입니다getJSON서버 측에서 결과를 가져오지만 브라우저 캐시 문제에 직면합니다.캐시가 거짓이었으면 좋겠습니다.제가 이거 쓰기 직전에 써봤어요.getJSON불러.

 $.ajaxSetup({
                cache: false
            })

하지만 저는 기대했던 결과를 얻지 못하고 있습니다.그것은 여전히 예전의 결과를 보여줍니다.

다음과 같은 다른 솔루션도 확인했습니다..ajax정말 쓰고 싶지 않아요.

코드를 활성화하려면 트리거만 있으면 됩니다.

이를 통해 향후 모든 ajax에서 캐시를 사용하지 않도록 설정할 수 있습니다.

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

캐시를 전역적으로 비활성화하는 다음 중 하나를 사용할 수 있습니다.

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

대신에$.getJSON, 해당 요청에 대해서만 캐시를 비활성화하려면 다음을 수행합니다.

$.ajax({
    cache: false,
    url: "/path/to.json",
    dataType: "json",
    success: function(data) {
        ...
    }
});

semente와 bonesnatch의 답은 맞지만, 만약 당신이 $.getJ를 사용하고 싶다면.SON과 다른 곳에서는 캐싱의 이점을 활용하지만(모든 호출에 대해 캐시를 false로 설정하지는 않을 것이지만), 한 번의 호출에 대해서만 캐시를 생성하고 싶다면 $.getJSON()의 데이터 속성에 타임스탬프를 주입할 수 있습니다.요청의 쿼리 문자열에 고유한 값을 추가하면 요청은 항상 고유하며 브라우저에서 캐시되지 않습니다. 항상 최신 데이터를 얻을 수 있습니다.

긴 버전:

var ts = new Date().getTime();
var data = {_: ts};
var url = '/some/path.json';

$.getJSON(url, data);

한 버전으로 모두 제공:

$.getJSON('/some/path', {_: new Date().getTime()});

두 가지 모두 다음과 같은 요청을 받습니다.

/some/path.json?_=1439315011130 

여기서 끝의 숫자는 코드가 호출되는 순간의 타임스탬프이며 따라서 항상 고유합니다.

언급URL : https://stackoverflow.com/questions/13391563/how-to-set-cache-false-for-getjson-in-jquery

반응형