2010-11-25 5 views
0

나는 여러 자바 스크립트 파일을 가지고 있으며 한 파일에서 캐싱에 접근하는 방법을 모르겠습니다. 그것은 일부 페이지가 필요하지 않더라도 내 레이아웃에 그들 모두를 포함하는 의미가 않습니다 ...Ruby on Rails의 기본 캐싱 js 자산

javascript_include_tag ... :cache => true 

을하지만 특정 페이지에 특정 있습니다 자바 스크립트 파일의 번호를 가지고 : 내가 사용 건너왔다 거기에 자바 스크립트가 많이 있습니까? 내 페이지 중 일부는 자바 스크립트가 전혀 필요하지 않습니다. 브라우저가 모든 페이지에 대해이 연결된 J를 다운로드 할 예정입니까?

답변

0

일부 사람들은 모든 JavaScript를 하나의 파일로 덤프하지만 모든 페이지에서 루틴을 사용하지 않는 한 많은 의미가 있다고 생각하지는 않습니다.

스크립트가 어떻게 사용되는지 생각해보십시오. 한 페이지에 가장 자주 사용되는 파일을 하나의 파일에 넣으십시오. 그런 다음 가끔씩 사용되는 스크립트가 있으면 별도의 파일에 저장하십시오. 그런 다음 HTML 파일에 여러 <script> 문을 사용하여 필요한 항목을 가져옵니다.

사용자의 브라우저가 정상적으로 설정된 경우 스크립트를 한 번 다운로드 한 다음 로컬 캐시에서 참조하십시오. 처음으로 페이지를 요청하면 캐시를 채워야하기 때문에 모든 것을 검색하는 데 약간 시간이 걸리지 만 그 다음부터는 빠를 것입니다. 브라우저는 스크립트에 대한 모든 참조에 대해 캐시 된 버전을 사용합니다.

:cache => true 플래그는 파일을 처음 다운로드하는 동안 압축 될 수 있기 때문에 bajillion 스크립트가있는 경우 도움이 될 수 있지만 브라우저가 캐시에서 파일을 가져 오는 동안 이후에로드 속도가 빨라지지는 않습니다.

Caching multiple javascripts into one 회담.

0

n include tags = n 서버에서 요청을받습니다. 이것은 잘 수행되지 않고 웹 페이지가 느려집니다.

모든 것을 하나의 파일로 축소해도 괜찮습니다. 어쨌든 한 번 다운로드 한 다음 브라우저에 캐시됩니다.

각각 상황이 다르므로 Yslow를 사용하여 분석하고 하나의 파일로 축소하는 것이 도움이되는지 아닌지 확인하십시오. 또한 2 파일에 js & css를 줄이기위한 https://github.com/thumblemonks/smurf을보십시오.