Что вы называете гибридным традиционным / push-приложением? - PullRequest
3 голосов
/ 12 марта 2012

Интересно, есть ли название для этой техники в ее различных воплощениях ... И если есть люди, которые ее реализуют.

Допустим, у вас есть страница, очень похожая на github.А с браузером, поддерживаемым JavaScript, вы загружаете

http://www.github.com/username/project

UI and inner content load simultaneously, the pre-AJAX way
- or -
UI wrapper loads, inner content loads via AJAX    

И он загружает статический скелет и все модули через AJAX.Или он может статически загрузить всю страницу.

Затем вы нажимаете на некоторые элементы навигации и пытаетесь посетить

http://www.github.com/username/project/first_dir

With previously loaded UI
  Inner content navigation causes full page refresh
    - or -
  Inner content navigation causes inner content reload via page refresh
  - or -
Completely new page with UI and inner content loads, same as first example

. На данный момент я знаю, что эту страницу можно "посетить", используясостояние push и обновление внутреннего модуля с помощью AJAX, сохраняя общий хром сайта статичным.Но если по какой-то причине JavaScript не поддерживается ИЛИ страница была загружена с использованием полного обновления, страница будет полностью загружаться статически (или частично через AJAX после загрузки скелета, как в первом URL).

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

Ответы [ 3 ]

0 голосов
/ 20 июня 2012

Как и в случае с raina77ow, я также не знаю, как это называется, но мы реализовали именно это недавно для мобильного приложения / веб-страницы (которая должна была работать и в старых версиях Opera / IE).Сначала мы создали более-менее чистую HTML-страницу, которая затем связывает теги all a и заменяет функциональность через javascript на вызов ajax, который извлекает страницу whole и вырезает ее.'(jQuery имеет встроенную функциональность для этого) ту часть, которая была релевантной (это не дает полного преимущества страниц на основе AJAX, но предотвращает перезагрузку различных ресурсов).Это также предотвращает любые сложные проблемы синхронизации или API, которые должны иметь возможность возвращать JSON и HTML.

Помимо этого, если я возьму модель MVC и то, как мы реализовали ее в некоторыхиз наших приложений вы можете посмотреть на это так: HTML - это представление (статическое), JS - это контроллер, который запрашивает через AJAX-данные у моделей на стороне сервера.Это имеет гораздо больше смысла, чем воображение отдельной структуры MVC для переднего и внутреннего интерфейса.

0 голосов
/ 30 июля 2013

Спайк Брем из Airbnb называет это Святой Грааль .

http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product

0 голосов
/ 19 июня 2012

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

Суть в том, чтобы использовать View Helpers (или Partials; хотя мы выбрали первое) для создания различных частей всей страницы.Например, боковая панель создается одним объектом-помощником, таблица представляет коллекцию некоторых элементов - с другим и т. Д. Каждый из этих помощников можно назвать своего рода мини-представлением, так как он отвечает за представление некоторых данных в некоторыхочень особым образом.

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

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