현명한 경우에 대한 조언이 필요합니다. 주로 AJAX 요청을 통해 사이트 데이터를로드하고 있습니다. 로드 시간과 서버 호출을 저장하기 위해 전역 객체에로드 된 모든 데이터를 저장하고 사용자가 페이지를 다시 선택하면 해당 데이터를 재활용합니다. 는 등 : 하나의 객체에 전체 사이트를 캐시로드 된 모든 데이터를 하나의 자바 스크립트 객체에 저장
var page = ['level 1','level 2','level 3','level 4'];
var mysiteobj = [];
if (page[0] == 'level 1')
if (!mysiteobj['level 1'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1'] = data; /*display data*/ });
else /*display mysiteobj['level 1']*/
if (page[1] == 'level 2')
if (!mysiteobj['level 1']['level 2'])
$.ajax(/*load data*/).done(function(data){ mysiteobj['level 1']['level 2'] = data; /*display data*/ });
else /*display mysiteobj['level 1']['level 2']*/
...etc
예컨대을 현명하다 ... 그리고 경우
가 궁금하네요. 다소 이상한 표기법을 명확히하기 위해 '레벨 1'은 사용자가 검색 할 수있는 모든 지리적 영역이며 '레벨 2'는 사용자가 볼 수있는 지역의 모든 부서이며 '레벨 3'은 부서의 카테고리가됩니다 '레벨 4'는 지역의 부서 카테고리에 나열된 제품 또는 항목이 될 것이라고 말합니다.지금 내 방법은 모든 지리적 영역이있는 개체가 있고, 두 번째 개체가 새 지리로드 될 때마다 덮어 쓰여지고 세 번째 개체가 내 범주를 보유하고 네 번째 목록/제작품.
이 경우 이해가된다면 알려주십시오. 나는 질문을 단순화했다고 생각합니다. 다루기 힘들어지고 브라우저가 쓰러지기 전에 얼마나 큰 객체를 만들 수 있습니까?
페이지 나 사용자가 유휴 상태 일 때 모든 것을 "미리로드"할 수 있습니다. 페이지 1을 탐색 할 때 백그라운드에서 다른 사람들을로드 할 때처럼 말하십시오. – Joseph
@Joseph - 그렇지만 사용자에게 도움이되지 않는 많은 전화를 걸고 있습니다. 휴대 전화를 사용하고 대역폭을 지불하면 많은 문제가 발생할 수 있습니다. 또한 사용자가 레벨 2에서 한 부분 만보고 레벨 2에서 모든 항목을로드하고 대다수를 사용하지 않을 때 메모리를 사용하면 메모리가 다시 사용됩니다. –
좋은 지적입니다. 나는 결코 모바일에 대해 생각하지 않았다. – Joseph