2011-03-23 2 views
0

매우 간단한 자바 스크립트 응답을 캐싱하려고합니다. 나는 레일을 사용하고 나의보기/프로젝트/index.js.erb는 다음과 같은 경우에만 포함캐싱하지 않은 jquery 스크립트 요청

  alert('hi'); 

을 내가

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

를 요청할 때 나는 '안녕하세요'팝업을 얻고 난에 표시 내 서버 로그에 js로 Projects # index action에 대한 요청이 만들어졌다.

그런 다음 브라우저를 새로 고침 나는 다시 내가 서버가 계속 요청을 얻는 것을 볼

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

그것을하지 않고 사람이 자리 아무것도 내가 놓친 것 수?

감사합니다.

+0

오류가 있습니까? –

+0

아니요, 콘솔에 전혀 오류가 없습니다. 나는 firefox와 chrome의 콘솔을 모두 확인했다. 그리고 서버 로그에 어떤 요청도 기록되지 않습니다. 그리고 나는 이미 앞으로 나아가서 다른 간단한 플러그인이나 스크립트 나 다른 것들이 간섭 할 수 없도록 새로운 간단한 앱을 만들었다. 이제는 아무것도없는 벌거 벗은 베어 본 페이지. –

+2

어쩌면 나는 jQuery 문서를 잘못보고 있지만 getScript에 콜백 함수의 두 번째 매개 변수가 아닐 수 있습니까? – BStruthers

답변

1

무엇이 잘못되었는지 알았습니다. jQuery는 들어오는 스크립트를 실제로 둘러싸 기 때문에 브라우저가 들어오는 코드를 평가합니다. 그러나 캐싱 메신저는 코드를 텍스트로 저장하고 다시 요청할 때 코드를 텍스트로 반환하지만 평가하지는 않습니다. 따라서 코드를 명시 적으로 평가해야합니다.

+0

들어오는 스크립트를 무엇으로 둘러 쌉니까? –