Магистральный маршрутизатор, запускаемый обновлением страницы

Я получил вопрос о магистральном маршрутизаторе, пожалуйста, помогите:

У меня есть роутер:

define(['views/index', 'views/login'], function(indexView, loginView) {

    var SelinkRouter = Backbone.Router.extend({

        currentView: null,

        routes: {
            'home': 'home',
            'login': 'login'
        },

        changeView: function(view) {
            if(null != this.currentView)
                this.currentView.undelegateEvents();
            this.currentView = view;
            this.currentView.render();
        },

        home: function() {
            this.changeView(indexView);
        },

        login: function() {
            this.changeView(loginView);
        }
    });

    return new SelinkRouter();
});

когда пользователи впервые зашли на мой сайт, был запущен маршрут входа в систему, и они заняли их на странице входа, после входа пользователь перешел на маршрут "домой" по адресу: window.location.hash = "home". Теперь пользователь увидел домашнюю страницу, URL-адрес которой выглядит так: mysite.com/#home, это было хорошо.

Проблема в том, что в этот момент, если я нажму клавишу F5 или обновлю страницу каким-либо другим способом, хотя "домашний" маршрут будет снова запущен (что нормально), в то же время вся страница была перезагружена и все мои js были перезагружены снова, поэтому приложение перезапускается, оно возвращает меня на страницу входа (очень плохо).

У кого-нибудь была такая же проблема? я должен остановить обновление страницы? как?

большое спасибо за любую идею.

1 ответ

Мне кажется, что лучше всего иметь отдельную страницу для входа в систему. И хотя это может звучать как ответ соавтора, я думаю, что страница входа должна быть шлюзом в ваше приложение, а не частью самого приложения.

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