2011-12-20 2 views
4

웹 응용 프로그램이 내장 된 메모리 장치 또는 저 메모리 장치에서 실행되어야하는 경우 런타임시 메모리 부족 상태를 관리 할 수있는 JavaScript 기능이 있으므로 가능한 한 많은 메모리를 사용하여 데이터를 캐싱 할 수 있지만 그러한 메모리 장치는 안정적으로 제거 할 수 있어야합니다. 필요에 따라 캐시 하시겠습니까?JavaScript에서 런타임시 메모리 부족 상태를 처리 할 수있는 방법이 있습니까?

예를 들어, 서버에서 반복적으로 새로운 요청을하는 대신 사용하는 데이터 객체 맵이있는 것처럼 로컬 논리 데이터 저장소가있는 응용 프로그램이 있습니다. 캐시를 자바 스크립트 애플리케이션의 런타임에 확인할 수있는 워터 마크까지 채울 수 있어야합니다.

나는 지금까지 아무 것도 발견하지 못했지만, 나는 뭔가를 놓친 것으로 기대하고 있습니다.

답변

3

아니요. 브라우저는 메모리 사용 통계를 JavaScript에 노출시키지 않습니다.

캐싱을 구현하려는 경우 JS에서 자체 캐시를 구현하는 대신 브라우저의 캐시 (예 : Expires: 헤더를 AJAX 응답에 사용하는 것)를 이용하는 것이 좋습니다.

+0

'Expires :'를 사용하면 서버의 리소스에서만 작동합니다. 비효율적 인 캔버스에 렌더링 된 것과 같이 브라우저에서 수행해야하는 작업을 캐시하려는 경우 메모리 부족 문제가 발생할 수 있습니다. – Thayne

1

localstorage 또는 IndexDB를 사용하여 결과를 캐시 할 수 있습니다 (대부분의 장치/브라우저에서 실제 크기 제한이 잘 알려져 있음). 자바 스크립트에서 메모리 사용량을 알 필요가 없습니다.

phonegap (http://www.phonegap.com)을 사용하는 경우 원시 코드 내에서 메모리 경고를 쉽게 가져 와서 JavaScript로 보낼 수 있습니다. DOM을 정리하고 필요하다면 나중에 다시 계산할 수있는 여러 상황에서이를 수행했습니다.

+0

메모리 경고를받을 때 PhoneGap에서 javascript 코드를 어떻게 호출 했습니까? –

관련 문제