2015-01-18 2 views
0

느린 연결에서 로딩 시간을 줄이기 위해 일부 정적 컨텐츠를 캐시하고 싶은이 웹 응용 프로그램에서 작업하고 있습니다. 다른 부분은 PHP 및 AJAX를 통해 생성되므로 캐싱 할 수 없습니다.캐시의 이미지가 사용되지 않습니다.

이미지와 같이 정적 콘텐츠를 캐시하기 위해 cache.manifest를 성공적으로 사용하고 있지만 동적 페이지가이를 사용하고 있지 않음을 알았습니다. 대신 이미지가 캐싱 된 경우에도 이미지를 다시 다운로드하므로 캐싱이 쓸모 없게됩니다.

내 동적 콘텐츠는 GET 요청을 기반으로 생성되므로 동적 페이지는 매니페스트의 네트워크 섹션에 있습니다 (예 : '사용자? *'). 그걸로 뭔가 관련이 있을까요? 어쩌면 강제로 캐시 된 이미지를 사용하는 방법이 있습니까?

참고 : 동적 페이지 (예 : '사용자 ID = 22')에 대한 정확한 참조는 물론 매니페스트에 없습니다. 그러면 해당 페이지에서 캐시를 찾을 수 없습니까?

+0

정적 컨텐츠에 대해'Cache-Control','Pragma' 및'Expires' 헤더를 보냅니 까? 정적 컨텐츠를 어떻게 구현합니까? 웹 서버에서 직접 서비스를 제공합니까? –

+0

현재이 헤더를 사용하고 있지 않습니다. 그들에 대해 지금 읽고 있습니다. 두 번째 질문에 관해서; 이미지는 서버에 저장되며 PHP에서 이들에 대한 참조를 생성합니다. – Jorgos

+0

@CharlotteDunois 그 머리글을 들여다 보았지만 그들이 어떻게 나를 도울 수 있는지 보지 못했습니다. 모든 페이지를 캐싱하고 동적 콘텐트가 포함 된 페이지에 해당 헤더를 추가 하시겠습니까? 기본적으로 묻는 것은 cache.manifest의 'NETWORK'섹션에 명시 적으로 참조되지 않은 페이지 (동적 매개 변수 때문에)가 캐시 된 리소스를 사용할 수 있는지 여부입니다. – Jorgos

답변

0

나는 내 자신의 해결책을 생각해 냈습니다.

동적 페이지 (예 : 'user.php? id = 22')를 캐싱하면 내 애플리케이션이 손상되므로 페이지 자체에서 참조하는 대신 매니페스트에 대한 참조가 포함 된 iframe을 삽입하려고했습니다. 그것은 나를 위해 그것을 할 것 같지 않았다.

이제 매니페스트의 캐시 섹션에있는 동적 페이지에 와일드 카드로 명시 적 참조를 포함합니다. 그것은 작동하는 것 같습니다. 그들은 이제 이 아니며 매개 변수 외에도이 완전히 캐시됩니다. (따라서 응용 프로그램은 계속 작동하지만) 캐시 된 이미지를 사용하고 있습니다. 이상적이지는 않지만 꽤 간단한 해결책 인 것 같습니다.

아직 이러한 iframe을 제거하지 않았지만 삭제할 수 있다고 생각합니다.

CACHE MANIFEST 
./user.php 
./user.php?* 
etc... 
NETWORK: 
./db_connect.php 
etc...