티스토리 뷰
XMLHttpRequest 객체를 이용해 서버와 AJAX 통신을 하던 도중, 다음과 같은 문제가 발생하였습니다.
- A.js 파일을 수정한 후 해당 파일을 비동기로 로드했지만, 수정되지 않은채 로드가 되었습니다.
구글링 통해 알아본 결과 브라우져에서 캐싱하는듯 합니다. 브라우져에서 캐시를 삭제한 후 다시 로드하니 수정된 내용이 로드되었습니다.
조금 더 구글링 해본 결과 Mozilla 사이트에서 해당 내용을 우회할 수 있는 법이 있었습니다. (원문 바로 가기)
내용을 보아 하니 캐시를 우회하는 법은 요청하려는 URL 뒤에 timestamp를 붙여주는 것입니다. "?" 또는 "&" 말이지요.
샘플을 보시면:
http://foo.com/bar.html -> http://foo.com/bar.html?12345
http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&12345
이렇게 말이죠.
하지만 하드코딩하지 않는 이상, 매번 저렇게 하기엔 동적이지 않아 다음처럼 자동으로 URL을 만들어 줄 수 있다고 하네요:
var oReq = new XMLHttpRequest();
oReq.open("GET", url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime());
oReq.send(null);
이렇게 작성 하시면, 호출 할 때마다 현재 timestamp를 URL 뒤에 "?" 또는 "&" 자동으로 붙여 줍니다.
'프로그래밍언어 > JavaScript' 카테고리의 다른 글
[javascript] 클래스 속성 다루기 (0) | 2016.06.22 |
---|---|
[javascript] 부모 엘리먼트(노드) (0) | 2016.06.22 |
[JavaScript] location : 주소 GET 변수 사용하기 (0) | 2009.07.04 |
[JavaScript] IFRAME : 높이 자동 조절 (0) | 2009.07.04 |
[JavaScript] 배열 (0) | 2009.06.18 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 가 부터 힣
- 리눅스
- swapfile
- ssh
- backup
- 무정지서비스배포
- NGINX
- graceful shutdown
- GROUP BY
- MySQL
- headless browser
- 소공
- centOS7
- flask-simpleldap
- ELECTRON
- mariadb
- 파이썬
- 소프트웨어 공학
- pk
- select
- 자바스크립트
- director.js
- javascript
- Python
- php
- centOS
- 소프트웨어 엔지니어링
- bash
- 채굴량
- 워드프레스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함