2014-07-23 5 views
0

AJAX 응답을 적절히 캐시하는 방법에 대한 연구를하고 있습니다. AJAX 응답을 많이 사용하는 페이지의 속도가 빨라지기 때문입니다. 야후 웹 사이트에서이 작품을 발견했습니다 :AJAX를 올바르게 캐시하는 방법

예를 살펴 보겠습니다. Web 2.0 이메일 클라이언트는 Ajax를 사용하여 자동 완성을 위해 사용자의 주소록을 다운로드 할 수 있습니다. 사용자가 전자 메일 웹 응용 프로그램을 마지막으로 사용한 후 주소록을 수정하지 않은 경우 해당 Ajax 응답이 향후 Expires 또는 Cache-Control 헤더로 캐시 할 수있는 경우 이전 주소록 응답을 캐시에서 읽을 수 있습니다. 이전에 캐시 된 주소록 응답을 사용할 때와 새로운 주소록 응답을 요청할 때 브라우저에 알려야합니다. 이는 사용자가 주소록을 마지막으로 수정 한 시간을 나타내는 주소록 Ajax URL에 시간 소인을 추가하여 수행 할 수 있습니다 (예 : & t = 1190241612). 마지막 다운로드 이후에 주소록이 수정되지 않은 경우 타임 스탬프가 같아지고 브라우저의 캐시에서 주소록을 읽어 추가 HTTP 왕복을 제거합니다. 사용자가 주소록을 수정 한 경우 타임 스탬프는 새 URL이 캐시 된 응답과 일치하지 않도록하며 브라우저는 업데이트 된 주소록 항목을 요청합니다.

이것은 분명하지 않습니다. 내가이 모든 것을 알고 싶어하는 이유는 사용자가 웹 사이트에 바로 가기를 추가 할 수있는 간단한 웹 페이지를 만들고 있기 때문입니다. 그들은 아이콘 격자를보고 그들이 원하는 웹 사이트를 클릭하거나 검색 할 수 있습니다. 이것은 PHP와 가장 중요한 AJAX를 훨씬 더 잘 알 수있는 프로젝트로만 의미가 있습니다. 실제 사용자는 볼 수 없습니다.

상상할 수있는 것처럼 검색 기능을 사용하면 웹 사이트가 느려질 수 있습니다. 특히 타이핑 된 편지 다음에 AJAX 요청을 수행하고 있기 때문에 특히 그렇습니다. 따라서이 부분 중 일부가 캐싱되면 웹 사이트가 크게 향상 될 것이라고 생각합니다.

당신이 캐시 된 응답을 사용 하시겠습니까, 아니면 서버마다 신선한 하나를 만들려면 않습니다

답변

0

먼저 당신의 마음을 만들 필요가?

정확하게 묻고있는 것이 분명하지 않습니다. 당신은 무엇을 캐쉬하고 싶습니까?

  • 캐시 된 응답을 원하면 이전에 사용한 URL 만 사용하십시오. (조합에서,이 만료 헤더로) 예를 들어

: http://www.example.com/myAjaxHelper.php?q=ab

서버가이 "지금부터 일주"라는 헤더를 만료로 응답하는 경우, 당신은 일주일 동안 캐시 된 응답을 얻을 것이다. 브라우저가 그렇게 할 것입니다. (응답 헤더에 만료 값을 설정할 수 있습니다) 브라우저가 만료 헤더를 준수하지 않는 경우 브라우저에 문제가 있으며 과거에 만료 된 경우에도 새 버전 대신 캐시 된 버전을 가져 오는 경우가 있습니다. 당신은 신선한 응답을 원하는 (이 때문에 각 키 업에 속도 저하로 이어질 수 있다면

  • 당신은 왕복을 (특히 이전의 IE는 그 문제를 해결하기 위해 추가 헤더의 몇 가지가 필요 그것은 매우 혼란) 서버에), 새로운 URL을 만드십시오. 예 :

    http://www.example.com/myAjaxHelper.php?q=ab?time= <? php echo time(); ?>

이것은 새로운 URL 각 초를 이어질 것입니다. URL은 다르므로 캐시되지 않습니다 (time = .... 부분에서만 가능하지만 새 요청을 강제 실행하는 데 충분합니다).

관련 문제