Как справиться с перезагрузкой страницы

Насколько я понимаю, «обычный» способ обработки перезагрузки страницы заключается в дублировании функций и представления в веб-стеке с использованием его контроллеров, представлений и моделей. Я был бы признателен за понимание других (возможно, лучших) способов справиться с этими ситуациями. А также отзывы о следующих двух подходах:

  1. Перезагружайте приложение/комплект на основе js framework на каждой странице веб-приложения (стека), тем самым заставляя js framework обрабатывать всю маршрутизацию и рендеринг

  2. Используйте веб-стек для маршрутизации взаимодействий, а затем используйте магистраль для отображения представлений в зависимости от взаимодействий.

Спасибо!


person Ari    schedule 03.08.2012    source источник


Ответы (1)


ИМХО подход 2. — это тот, для которого родился Backbone :)

Следуя этому подходу, мы закончим тем, что называется одностраничным приложением.

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

Таким образом, сочетание обоих подходов также может быть хорошей идеей. Вы можете разделить свое приложение на такие модули, как: ManagingUsers, ManagingPosts, ManagingMedia, создать одностраничные приложения для этих модулей, содержащие index, edit, show, ... действия, которые не перезагружают страницу, и если вы перейдете в другой модуль, страница будет перезагружена и в компании всего фреймворка и со здоровым сбросом памяти.

person fguillen    schedule 03.08.2012
comment
Я немного смущен вашим постом. Подход № 2, как я и предполагал, по сути такой же, как и ваше предложение (см. Последний абзац вашего поста). Следовательно, подход № 2 не дает обычного одностраничного приложения, так как происходит преднамеренная перезагрузка страницы. Не могли бы вы уточнить, что вы имели в виду под Following this approach we'll finish with what is called Single Page Application. - person Ari; 06.08.2012
comment
Как я понял, ваш Подход #2 предлагает загружать страницу один раз и выполнять каждое последующее изменение страницы через Backbone.Router и вызовы AJAX без какой-либо реальной перезагрузки страницы, и я думаю, что это соответствует с узором СПА. В моем первом и втором абзацах я сказал, что это очень элегантное решение, но в третьем абзаце я говорю о возможных проблемах, а в четвертом абзаце я говорю о смешанном решении. - person fguillen; 06.08.2012