ajax 호출을 사용하여 모델을 js 앱 모델 컬렉션에 추가합니다. 모델을 클릭하고 다음 페이지로 이동하면 뒤로 버튼을 눌렀을 때로드 된 모든 모델을 계속 표시해야합니다. 모든 브라우저에서 작동하도록이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 이것은 모바일 웹을위한 것입니다. 나는 똑바로 대답을 찾을 수 없다, 어떻게 bfcache, js 역사를 사용합니까, 아니면 다른, 더 좋은 방법이 있습니까?뒤로 버튼을 눌렀을 때 페이지가 그대로로드되도록 DOM을 저장/캐시하는 방법은 무엇입니까?
답변
당신은 로컬 스토리지
에 존재 그래서 대신 일반 $의 아약스를 사용하여, 당신은 캐시를 원하는 아약스이를 사용하지 않는 경우에만 그들을위한 로컬 스토리지 및 아약스에 저장할 수 있습니다 :
function storageBasedAjax(url,cb){
if (localStorage.getItem("myAxaxCache_"+url)){
cb(localStorage.getItem("myAxaxCache_"+url));
return;
}
$.ajax({url: url, success: function(result){
localStorage.setItem("myAxaxCache_"+url,result);
cb(result);
}});
}
은 그냥 당신이 과부하에 싶지 않은 기억, 그래서 당신은 각각의 호출을 변경하는 매개 변수가있는 URL이있는 경우, 이것을 사용하지 않거나
브라우저를 사용하면 Ajax 콘텐츠를 저장하지 않을 것이라고 확신합니다. 기본적으로 버튼입니다. – niandrei
뒤로 버튼과 관련없이 현금으로 저장합니다. –
브라우저가 현재 모바일 Safari의 항목을 저장하지 않고 있습니다. –
는 적어도 파이어 폭스가 실제로 복원 로컬 저장소에 과부하가됩니다 페이지가 축 어적 (DOM과 자바 스크립트 상태)이라면 여전히 bf에있다. 특정 이벤트 핸들러에 의해 억압되지 않은 한, 캐시. – the8472
나는 누구도 모바일에서 FF를 사용하지 않을 것이라고 생각하지만, 대부분 ios 및 Android 모바일 웹 사용자를 위해 사파리와 크롬에서 작동하도록하려고 시도합니다. –