Архитектура веб-приложения: реализация MVC в браузере с использованием сервера в качестве хранилища данных и шаблонов - PullRequest
2 голосов
/ 21 марта 2011

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

Простой сервер, который просто обслуживает ответы данных JSON, и HTML с шаблонами, которые будут отображаться на клиенте.Клиентская сторона - это JavaScript-приложение MVC, которое получает и кэширует HTML-шаблоны и запрашивает данные в формате JSON по мере необходимости.Js является сердцем и логикой приложения, реализующего все поведение и взаимодействие.

В этом конкретном сценарии сервер будет запрашивать как хранилище данных и как сервер шаблонов HTML.Клиент получает шаблоны и кэширует их для последующего использования (используя автономное хранилище, почему бы и нет), отображая их с данными JSON в самом браузере.

Я вижу некоторые плюсы в этом:

  • Браузер запрашивает только необходимые данные и шаблоны, что позволяет ему работать с очень низкой пропускной способностью.Кэширование шаблонов - большой плюс.
  • Сервер довольно прост и может даже быть реализован в javascript с использованием Node.js, чтобы обеспечить изящный откат для браузеров, которые отключили javascript путем рендеринга шаблонов на сервере.и отправка сгенерированного html-кода в ответ.

и некоторые недостатки:

  • Дополнительные запросы выполняются как шаблоны, а данные запрашиваются отдельно
  • Виспользование этой идеи, она не работает, если у пользователя отключен JavaScript.

Я давно об этом думаю, и не знаю, насколько безумна эта идеяи если есть текущие реализации этого, или даже если это имеет имя.Какие-то дополнительные преимущества или недостатки?Существуют ли какие-либо реализации?

Не стесняйтесь закрыть его, если у этой идеи действительно есть имя и вопрос о ней существует.

Если бы у меня был представитель, я бы сделал это вики-сообществом, но я не могу.

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Инженерная команда Linkedin в настоящее время ведет блог о том, как они перешли от серверных шаблонов к клиентским шаблонам JavaScript.

Уже доступно несколько статей

1 голос
/ 21 марта 2011

Я не знаю, существует ли что-то подобное.

Однако я не вижу реальной выгоды в запросах к серверу, так как с обычным серверным MVC вы можете загрузить только шаблонодин раз и запросить только данные JSON (возможно, перенести часть поведения модели в JS).Кроме того, помните, что 10 запросов по 1 КБ данных на сервер займут больше времени, чем 1 запрос из 10 КБ.Если у вас больше запросов с меньшим количеством данных, вы можете столкнуться с большими задержками.

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

Большой плюс: он может работать в автономном режиме, если вы реализуете какое-то автономное хранилище с минимумом данных.

0 голосов
/ 12 сентября 2011

Старый вопрос, но я видел, что никто здесь не упомянул Bones - построенные на NodeJS и BackboneJS, чтобы делать то, что вы ищете.

С веб-сайта:

Bones предоставляет соглашения для приложений Backbone.Это позволяет большей части кода быть разделенным на сервере и клиенте.Bones представляет ваши Backbone-маршруты как обычные пути на сервере, так что к ним могут обращаться агенты, не являющиеся JavaScript, в то время как способные клиенты могут пользоваться обычным Backbone-интерфейсом на стороне клиента.

https://github.com/developmentseed/bones

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...