2012-03-18 4 views
0

각기 다른 동작을하는 여러 개의 탭을 열 수있는 단일 페이지 앱이 있습니다. 그러나 사용자가 새로 고침 또는 뒤로 이동하면 작업중인 모든 것을 잃게됩니다. 손실을 막기 위해 해시 뱅 (hash-bang)과 쿠키를 조합하는 방법이 있습니까? 예를 들어, 사용자가 새로 고칠 경우 사용중인 모든 탭이 다시 열립니다.hashbang으로 여러 탭을 처리하기

+0

쿠키를 사용해야하는 특별한 이유가 없으므로 localStorage ...를 사용할 수도 있습니다. – dmp

+0

은 모든 브라우저에서 작동해야합니다. HTML5는 옵션이 아닙니다. – LordZardeck

+0

다음 번 질문에서 언급하는 것이 좋을 것 같습니다. :) – Saebekassebil

답변

2

HTTP 요청에 불필요한 오버 헤드가 발생하기 때문에 쿠키를 사용하지 않는 것이 좋습니다.

AmplifyJS이 가능한 폴백와 sessionStorage, globalStorageuserData (IE)에 localStorage를 사용하여, 영구 데이터가 브라우저 간 지원을 제공한다.

1

아마도 onbeforeunload 이벤트를 사용하고 싶을 것입니다. 이 이벤트는 사용자가 "언로드"(새로 고침/리디렉션/등)하기 직전에 (이름에서 알 수 있듯이) 호출되며 저장되지 않은 데이터가있는 페이지에서 벗어나려고한다는 것을 사용자에게 경고 할 수 있습니다.

window.onbeforeunload = function(e) { 
    e = e || window.event; 
    var warning = 'You\'ve made changes to this page. Are you sure you don\'t want to save them?'; 

    if(e) { 
    e.returnValue = warning; 
    } 

    return warning; 
} 

이벤트에 대한 자세한 내용은 MDN Docs을 참조하십시오.

데이터를 저장하는 방법과 같은 localStorage, 서버에 IndexedDB, AJAX 및 (마지막) Cookies의 많음이있다.

+0

이것은 아마도 내가 할 수있는 일입니다. 감사. – LordZardeck

관련 문제