Как сохранить состояние страницы с помощью вкладок при обновлении браузера

В 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 сохранить состояние при обновлении страницы

Другие вопросы по тегам