Как сохранить состояние страницы с помощью вкладок при обновлении браузера
В ExtJ, каков наилучший способ обновления браузера?
Скажем, у меня есть страница с двумя вкладками A и B, и токен, когда вкладка A активна, является #mytoken/:someidforA, а токен, когда вкладка B активна, является #mytoken/:someidforB
Как мы можем гарантировать, что страница будет оставаться на той же вкладке при обновлении браузера?
Я делаю что-то подобное, используя Router в ExtJs5
window.onbeforeunload = function() {
token = // get history token
MyApp.getController('Main').redirectTo(token);
}
и внутри ViewControllers -
routes: {
"#mytoken/:someidforA" : "loadA",
"#mytoken/:someidforB" : "loadB"
}
Это хороший способ сделать это?
1 ответ
Я бы лично использовал документированные маршруты
Пример:
Ext.define('MyApp.view.main.MainController', {
extend : 'Ext.app.ViewController',
routes : {
'user/:id' : 'onUser'
},
onUser : function(id) {
//...
}
});
Вы также можете определить маршрут по умолчанию с помощью defaultToken
имущество:
defaultToken : 'home'
Похоже, вы уже используете некоторые из этих функций. Если URL-адрес похож на example.com/#user/4, то при обновлении страницы приложение может обработать этот маршрут, как это делалось ранее, и отобразить ту же страницу / раздел.
Чтобы восстановить все вкладки, которые были открыты до обновления, вам, вероятно, придется посмотреть что-то вроде localstorage
сохранить состояние при обновлении страницы