단일 페이지 앱의 웹 브라우저 캐시를 올바르게 처리하는 방법을 찾으려고합니다.
SPA를 구현하는 여러 HTML, JS 및 CSS 파일과 SPA가 소비하는 JSON 데이터가 상당히 일반적인 디자인입니다. 업데이트를 푸시 할 때 문제가 발생합니다. 사이트의 정적 부분과 JSON을 동시에 생성하는 코드를 업데이트하지만 클라이언트 브라우저에는 종종 정적 부분이 캐시되어 있으므로 오래된 코드는 새 데이터를 처리하려고 시도합니다. (변경 사항에 따라) 문제가 발생할 수 있습니다. (특히 IE는 다시 확인하지 않고 캐시 된 JS를 사용하는 데 Chrome 또는 Firefox보다 더 공격적인 것으로 보입니다.)
이것을 처리하는 가장 좋은 방법은 무엇입니까?
- 내 JSON 변경 사항이 이전 버전과 호환되는지 확인하고 브라우저 캐시가 적절한 시간 내에 만료된다고 가정하십시오.
- 정적 JS와 JSON 모두에 일종의 버전 번호를 포함시킨 다음
window.location.reload(true);
일치하지 않으면 실행 합니다. - 브라우저가 사이트를로드하기 위해 몇 번의 추가 왕복 여행을 의미하더라도 브라우저가 항상 모든로드에서 모든 리소스를 다시 확인하도록하기 위해 적절한 헤더 조합 (
must-revalidate
또는no-cache
기타 : 소스 가이 방법에 따라 다름 )을 파악하십시오. - 캐시 제어를 마이크로 관리하고 헤더를 만료하여 업데이트를 푸시 할 때 정적 컨텐츠가 만료되도록합니다.
- 다른 것?