2017-11-01 9 views
0

나는 나의 프로젝트는 이런 식으로 구조화 한 내 calculate.js에서방지 캐싱, 봄

src/main/java 
     com.test.project 
     com.test.project.configuration 
     com.test.project.controller 
     com.test.project.model 
     com.test.project.repository 
     com.test.project.service 
    src/main/resources 
     static 
      css 
      js 
      jquery.. 
      calculate.js 
      images 
     templates 
      admin 
      user 
      statistics.html 
      login.html 

나는 데이터베이스에 Ajax 호출이 파일을, 일부 값이 나는 테이블에 표시 할 검색있다 in the statistics.html 하지만, 일단 계산 된 값은 캐시되고 다른 데이터에 대해 calculate.js를 다시 호출하면 처음부터 동일한 검색 정보가 다시 표시됩니다.

나는 application.properties

spring.resources.chain.cache=false 
spring.resources.chain.strategy.content.enabled=true 
spring.resources.chain.strategy.content.paths=/** 

에 추가 시도하지만 아직 거기있어. 어떻게 해결할 수 있습니까?

편집 : @RequestMapping (값 = "calculatedResults/{ID}", 방법 = RequestMethod.GET) 공공 SurveyComparison getComparisonResultById (@PathVariable ("ID") 긴 ID :이 내 나머지 컨트롤러가

입니다 , 최종 HttpServletResponse 응답) { response.setHeader ("Cache-Control", "no-cache"); return calculateService.getSurveyById (id); }

내 아약스 전화 : 내가 나를 위해 작동하기 때문에

+0

귀하의 질문에 따르면, 이것은 'calculate.js'의 구 버전을 다운로드하는 브라우저에 관한 문제가 아니지만 브라우저가 AJAX를 사용하여 서버에서 오래된 데이터를 가져 오는 것입니다. 코드가 실제로하는 일과 그 행동에 대해 더 많은 정보를 제공 할 수 있습니까? –

+0

코드를 편집하고 해당 부분을 추가했습니다. 기본적으로 일부 데이터를 얻기 위해 ajax 호출을합니다. 그리고 나서 데이터를 꺼내서 주어진 ID로 특정 요소에 넣습니다. –

답변

0

이 페이지의 캐싱을 중지하려고 다른 값으로 특정 ID의 일부 열을 작성

function getSurveyResults(id){ 
var url="/calculatedResults/"+id; 
requestZ=$.getJSON(url,function(data){ 
    surveyResults=data; 
}); 
} 

getSurveyResults(surveyId); 

$.when(requestZ).then(function(){ 

document.getElementById("score1").innerHTML=surveyResults.scored1;} 

그리고 :

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");