개발/JavaScript

XMLHttpRequest

2014. 11. 5. 15:52

캐시 문제

- XMLHttpRequest는 기본적으로 동일한 url을 호출할 경우 캐시 기능을 제공한다.

- 캐시 기능을 원하지 않을 경우, 요청하려는 url 뒤에 현재시간을 parameter로 추가하여 동일한 url이라도 호출할 때마다 매번 url이 달라지도록 하여 캐시문제를 해결한다.

var xhr = new XMLHttpRequest();
var url = "http://ggobugi.tistory.com";
xhr.open('GET', url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    if (xhr.status == 200 || xhr.status == 0) {
      console.log("success!");
    } else if (xhr.status == 404) {
      console.error("not found!");
    }
  }
};
xhr.send(null);

jQuery의 경우 cache 옵션이 존재하며, 이 값을 설정해주면 된다.

var ajaxReq = $.ajax({
  url: "http://ggobugi.tistory.com",
  cache: false
  statusCode: {
    404: function() {
      console.error("not found!");
    }
  }
})
.done(function(data) {
  console.log("success!");
})
.fail(function() {
  console.error("fail!");
});


'개발 > JavaScript' 카테고리의 다른 글

[JavaScript] 실행 영역(Execution Context), Scope, Closure  (0) 2016.11.21
Java script & DOM  (0) 2013.07.30