Я замечаю, что мое приложение начинает тормозить, когда я слишком много раз меняю URL-адреса. Я подозреваю, что это связано с тем, что у меня настроены маршруты таким образом, что они создают новое представление каждый раз при посещении URL-адреса, не уверен, что есть другой способ сделать это. Возможно, я недостаточно понимаю javascript. Что происходит с представлениями, которые я создал после того, как они больше не используются, или, другими словами, когда я посещаю новый маршрут?
var Router = Backbone.Router.extend({
routes: {
'':'doSomething',
'helloworld':'doSomethingElse'
}
});
var app_router = new Router;
app_router.on('route:doSomething', function() {
var thing = new SomeModel();
new someView({model : thing});
});
app_router.on('route:doSomethingElse', function() {
var thing = new SomeModel();
new someOtherView({model : thing});
});
поэтому в этом простом примере, если бы я щелкнул назад и четвертым по ссылкам <a href="#">
и <a href="#helloworld">
, было бы просто построение объектов представления и модели? и если да, то это будет проблемой. Я бы предположил, что память будет съедена, но я могу просто не понимать вещи правильно.
Вот скриншот временной шкалы, когда я щелкаю назад и четвертым между двумя маршрутами. Кажется, что существует множество слушателей, которые, как я предполагаю, исходят от прослушивателей событий, которые я установил для одного из конкретных представлений. Я думаю, что это создает новых слушателей при каждом экземпляре.