2009-08-06 8 views
1

그냥 궁금해서 자바 스크립트를 캐시 할 수 있습니까? 즉, 브라우저를 새로 고칠 때마다 일부 논리를 다시 계산해야하는 클라이언트 CPU를 최소화하려면?자바 스크립트를 캐시 할 수 없습니까?

예를 들어 Google 자바 스크립트지도를 사용하십시오. 내 페이지에서지도를 emebed했을 때 내 페이지에서 사용할 수있는 캐시 메커니즘이 있습니까?

답변

2

클라이언트는 .js 파일을 로컬에서 캐시 할 수 있지만 (다운로드하지 못하게 함) 해당 파일이 수행하는 작업은 모든로드에서 수행됩니다.

Google지도의 경우지도를 표시하려면 작업을 수행해야합니다. 그런 다음 클라이언트가 .js 파일을 캐시에 저장하도록 (따라서 다운로드 저장) 많은 작업을 수행 할 수 없습니다.

클라이언트의 처리량을 제한하거나 처리 결과가 스칼라 (문자열, 숫자, 배열)이면 나중에 사용할 수 있도록 쿠키에 저장할 수 있습니다. DOM 조작은 모든로드에서 수행됩니다.

가능하면 서버에서 처리하는 작업이 빈번합니다.

3

각 페이지로드에 따라 JavaScript 실행이 이루어집니다. 한 가지 대안은 먼저 계산을 실행하기 전에 값이 이미 계산되었는지 확인하여 JavaScript 호출 방법을 변경하는 것입니다. 이렇게하려면 계산 된 값을 세션, 쿼리 문자열 매개 변수 인 URL 또는 쿠키와 같은 상태 형식으로 저장해야합니다. 이렇게하면 페이지가 처음로드 될 때 값이 계산되고 저장됩니다. 이후의 각 페이지로드에 대해 값은 다시 계산되지 않고 상태에서 가져옵니다.

1

자바 스크립트를 컴파일 한 결과를 캐시 할 수는 없지만 필요한 때까지 즉, 로직이 필요한 순간에 응용 프로그램 로직의 일부를로드하지 않도록하려면 < 스크립트> 태그를 새로 추가하십시오 DOM을 통해 필요한 기능을 수행 할 수 있습니다.

+0

예를 제공 할 수 있습니까? – cometta

+0

GWT는이 행에 대한 자료를 일부 지원합니다. http://googlewebtoolkit.blogspot.com/2008/11/improving-performance-with-on-demand.html 및 http://groups.google.com/group/을 참조하십시오. Google-Web-Toolkit- 제공자/browse_thread/thread/eb9c8cf046cbaaf2 – bdonlan

0

Google의 서버에서 자바 스크립트로로드 된 이미지에 대해 이야기하고 있다고 생각하십니까?

각 세부 수준에 대해 거대한 이미지 격자가 있으며 캐시를 논리적으로 이해하지 못합니다. Google지도에서 몇 분 동안 스크롤 한 후에 하드 드라이브를 여러 번 채울 수있는 충분한 이미지가 있습니다.

일부 브라우저는 자바 스크립트뿐만 아니라 다른 JavaScript도 처리하지 않습니다. 파이어 폭스는 일시적으로 지연되고 있지만 구글 크롬과 사파리는 모두 매우 빠르다. Safari는 개발 도구가 무엇 때문에 오래 걸리는지 정확하게 보여주기 때문에 다운로드할만한 가치가 있습니다.

관련 문제