2014-05-13 2 views
0

단일 페이지 앱을 개발 중이며 서버에 대한 요청이 많습니다. 한 가지 큰 반응 (20-30kb와 같은)이 있으며이 반응은 매주 한 번 바뀌며 eTag를 기반으로 브라우저에 응답을 캐시하고 싶습니다. ETag는 서버에서 올바르게 설정되지만 브라우저는 다음 요청시 eTag를 다시 보내지 않습니다.jQuery에서 eTag 헤더를 설정하는 방법은 무엇입니까?

캐시 제어 : 개인 콘텐츠 - 여기

$.ajax({ 
      url: 'Admin/GetActiveConfiguration', 
      type : 'GET', 
      ifModified: true, 
      success: function (data) { 
       that.configuration = $.parseJSON(data); 
       that.setRoles(); 
       that.setTitleAndIcon(); 
       that.initializeChat(); 
       callback(); 
       //that.loadViews(Object.keys(window.params)[0]); 
      } 
     }); 

는 서버 응답입니다 : 여기
public string GetActiveConfiguration() 
    { 
     var requestedETag = Request.Headers["If-None-Match"]; 
     var responseETag = layoutRepository.GetActiveConfigurationVersion().ToString(); 
     if (requestedETag == responseETag) 
     { 
      Response.StatusCode = 304; 
      return ""; 
     } 
     Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); 
     Response.Cache.SetETag(responseETag); 
     return layoutRepository.GetActiveConfiguration(); 
    } 

내 클라이언트 코드입니다 : 여기

내 서버 코드 인코딩 : gzip 콘텐츠 길이 : 6544 콘텐츠 형식 : text/html; 문자셋 = UTF-8 날짜 : 2014년 (화) (13) 월 그리니치 표준시 14시 19분 52초 의 ETag : 2014년 5월 13일 17시 1분 2초 서버 : 마이크로 소프트 IIS/8.0 비바리 : 수락 - 인코딩을 X-ASPNET을 -version : 4.0.30319 X-AspNetMvc 버전 4.0 X-전원이 저자 : ASP.NET X-있는 SourceFiles???? = UTF-8 B = 여기 QzpcUHJvamVjdHNcZUNvbW1lcmNlXE1pY3JvaW52ZXN0IGVDb21tZXJjZSBQcm8gTmV3XE1pY3JvaW52ZXN0IGVDb21tZXJjZSBQcm8gTmV3XEFkbWluXEdldEFjdGl2ZUNvbmZpZ3VyYXRpb24 =

인 다음 클라이언트 요청 :

수락 : / 수락 - 인코딩 : gzip을, 폐, SDCH 적용 여부-언어 : EN-GB, 욕실, Q = 0.8 캐시 - 제어 : 아니 - 캐시에게 연결 : 연결 유지 쿠키 : I 'llhideThoseOnPurpose :) 호스트 : localhost : 61061 Pragma : no-cache 참조 자 : localhost 사용자 에이전트 : Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, 게코) 크롬/34.0.1847.131 사파리와 같은/537.36 X-요청-으로 : XMLHttpRequest를

내가 무슨 일을하고 있는가?

답변

관련 문제