обработка нескольких вкладок с помощью hashbang - PullRequest
0 голосов
/ 19 марта 2012

У меня есть одностраничное приложение, в котором может быть открыто несколько вкладок, каждая из которых выполняет свои действия. однако, если пользователь нажимает кнопку «Обновить» или «назад», он теряет все, над чем работал. Есть ли способ, возможно, с помощью комбинации хеш-бэгов и куки, чтобы предотвратить потерю? например, если пользователь должен обновить, все вкладки, которые он использовал, будут открыты обратно.

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Я рекомендую не использовать файлы cookie, поскольку они создают ненужные накладные расходы для запросов HTTP.

AmplifyJS обеспечивает кросс-браузерную поддержку постоянных данных с использованием localStorage, где это возможно, с запасными значениями до sessionStorage, globalStorage и userData (IE).

1 голос
/ 19 марта 2012

Возможно, вы захотите использовать событие 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.

...