2009-11-30 18 views
1

사람이 읽을 수있는 5 개의 일반적인 JavaScript 파일로 시작했는데 총 10KB 정도였습니다.YSlow는 5 개의 파일을 결합하여 패킹 한 후에 내 JavaScript 파일이 더 이상 캐시되지 않는다고 말했습니다.

YSlow을 사용하고 나서 5 개의 파일을 병합하고 Dean Edwards 포장기를 사용하여 포장하기로 결정했습니다. 이제 4.5KB 인 파일이 하나 있습니다.

YSlow를 다시 실행하면 이전에 (별도의 파일이있는 경우) 5 개의 파일이 캐시 된 '통계'아래의 준비된 캐시에 JavaScript 파일이 표시됩니다.

그래서 이제 HTTP 요청 수가 4 개 줄어들지 만 준비가 완료된 캐시의 총 페이지 가중치는 4.5KB가됩니다.

내가 잘못 했나요?

아직 JavaScript 데이터베이스 폴더에 만료 날짜 헤더를 넣으려고하므로이 문제가 사라질 수 있지만 JavaScript 파일을 캐시하지 않는 이유는 알고 싶습니다.

+0

이 프로그래밍과 관련이 있습니까? 나는 serverfault.com에 더 적합하다고 생각합니다. – jitter

+1

저는 이것이 분명히 프로그래밍 관련이라고 말하고 싶습니다. 우리는 웹 사이트에서 js 파일을 구조화하는 최선의 방법에 대해 이야기하고 있습니다. – Nils

+1

확실히 프로그래밍 관련! – AutomatedTester

답변

0

나는 전혀 잘못 생각하지 않는다고 생각합니다. 모든 기본적인 모범 사례를 따르고 있습니다.

웹 서버에서 expires이 올바로 설정되어 있지 않은 것을 다운로드하면 YSlow가 브라우저에서 다운로드해야한다고 생각하기 때문에 문제를 해결하고 싶다고 생각하기 때문에 항상 초기화 된 캐시가 더 높을 것입니다 모든 것이 캐시 된 경우에도 마찬가지입니다.

Expires 헤더가 없기 때문에 캐시를 다운로드 할 때 만료되도록 설정 되었기 때문입니다. 장기 만료되도록 만료를 업데이트하면 문제를 확실히 분류 할 수 있습니다.

+0

글쎄, 저를 당황케하는 것은 원래 5 개의 파일도 만료 헤더없이 내려 왔고 yslow는 초기화 된 캐시로 다시 가져 오지 않는다는 것을 나타냅니다. 하나의 파일과 기본 패커 (인코딩없이)로 매시간 js 파일을 가져 오길 원한다. – Nils

+0

나는이 질문을 닫을 것이다. 비록 행동이 이상하지만, 그것을 해결하기 위해 할 일은 내가이 대답을 받아 들일 수 있도록 expires header를 설정하는 것이다. 감사! – Nils

0

this article을 읽으십시오. 여기에서는 파일을 업그레이드 한 후 캐시를 다시로드하는 방법을 보여줍니다.

+0

고마워요,하지만 내 새 파일은 원래의 5 개 파일과 다른 이름을 가지고 있고 이름에이 버전 번호 기술이 포함되어 있습니다. – Nils