2012-12-30 3 views
5

내가 알고있는 것처럼, 항목이 웹 브라우저에 의해 캐시되어 있는지 여부에 의해 결정됩니다 응답 헤더가해야 할 브라우저에게 무엇 브라우저 캐싱

  1. (예 : , Cache-ControlExpires).
  2. 발리 (예를 들면, 최근의 ETag 또는 수정 된 헤더)의 존재. 이 파일에 대해 어떻게 다른가

은 네트워크 파일 공유에서 제공? 다른 브라우저에서? 이 자바 스크립트를 고려 포함 : 네트워크 파일이 포함 된 경우

<script type="text/javascript" src="\\SOMECOMPUTER\folder\file.js"></script> 

이 브라우저는 이와 같은 meta 태그를 순종 할 것인가?

<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 31 Dec 2011 11:12:01 GMT"> 

이 주제에 대한 설명서가 거의 없습니다.

+2

이 질문에 대한 답변을하지 않지만이 같은 연결을 피하기 위해 노력할 것이고 대신 웹 서버가 서버의 경로 (예 : http : // 인트라넷/파일)를 통해 공유에 액세스 할 수 있는지 확인해야합니다. 실제로는'\\ SomeComputer \ files'에 매핑 된 네트워크 드라이브 인'z : \ SomeShare '일 수도 있습니다. – prodigitalson

+0

불행하게도 파일 공유 배포를 피하는 것은 우리에게 옵션이 아닙니다. 우리는 JS 무거운 웹 응용 프로그램을 인트라넷에 배포하여 IT 부서가 어디에 배치 할 수 있는지에 대한 명령을 내리고 있습니다. 경우에 따라 인트라넷 웹 서버를 사용할 수 있지만 더 자주 그렇지 않습니다. –

+0

HTTP가 캐시를 제어합니다. HTTP가 제공하는 모든 웹 서버를 사용하지 않으면 창 밖으로 나옵니다. –

답변

1

HTTP 헤더 만 고려) 사용되지 않는 변수로 시간을 추가하여 캐싱 아약스 호출을 피할 것이다. 파일 액세스 (로컬 및 네트워크 공유 모두)는 HTTP를 거치지 않으므로이를 사용하여 캐시를 제어 할 수 없습니다.

HTML 파일은 메타 태그와 <head> 섹션에서 캐시 제어 할 수 있습니다. 따라서 .html 파일에 대한 캐시를 제어하려는 경우 수행 할 수 있습니다. 위의 내용은 .js 파일에서는 불행히도 사실이 아니므로이 방법으로 js 파일 캐싱을 제어 할 수는 없습니다.

나는이 옵션을 추천 할 것입니다 :

  • 작은 HTTP 서버를 설정

      를, 거기에서의 .js 파일을 가져 - 당신은 반 HTTP 헤더에 의해 캐시 제한 시간을 제어하는이 방법을
    • 인라인 자바 스크립트 (<script>...</script> 태그)를 HTML 페이지에 코드, 그리고 <meta> 태그에 의해 캐싱을 제어 할 수 있습니다. 이 방법으로이 파일을 <div src="\\server\cachedfile.html" \>에로드 할 수 있습니다. div는로드 한 후에도 숨겨 질 수 있습니다.

    <meta> 캐시 제어가보다 안정적이며 제어가 더 잘되기 때문에 두 번째 옵션이 더 좋습니다.

  • 4

    편집 : 실제로 좀 더 테스트를 수행 한 후, 당신은 적절한 권한 전에 혼란에 대한 유감 설정입니다 가정, 파일을 IE8, 파이어 폭스, 구글과 그 방법에 액세스 할 수 있습니다.

    지금은 그냥의 문제에 대한 것입니다 그것을 캐시 자바 스크립트 파일 (또는 정말), 예이다. 그래서 여기에 당신이 그 문제를 해결 할 수 방법은 다음과 같습니다

    Using <meta> tags to turn off caching in all browsers?이 얼마나처럼 작동 (

    How to force IE to reload javascript? (이 브라우저는이 같은 네트워크 파일에 대한 메타 태그를들을 것으로 보인다, 그래서 이것은 나를 위해 잘 작동하는 듯) 당신은 파일이 HTTP 프로토콜을 통해 전송되는 동안