Как называется этот шаблон проектирования JSON / AJAXless? - PullRequest
0 голосов
/ 31 августа 2011

Я видел сайты, которые загружают страницу index.html, содержащую верхний и нижний колонтитулы и т. Д., Затем загружают все данные с помощью одного запроса AJAX и используют Javascript для форматирования и отображения его в списке.

например. если бы поисковая система делала это, JSON выглядел бы так:

searchresults: [
    {website: aaa.com, blurb: "This is from aaa.com", title: "AAA"},
    {website: bbb.com, blurb: "This is from bbb.com", title: "BBB"},
    {website: ccc.com, blurb: "This is from ccc.com", title: "CCC"},
    ... 100 more rows...
]

И он будет отформатирован javascript на странице, которая выглядит как страница результатов Google, показывающая первые 20 результатов. Преимущества в том, что нажатие «page2» и т. Д. Может использовать javascript для отображения следующей страницы без необходимости делать еще один AJAX-запрос к серверу или загружать новую страницу обычным способом. Всплывающие окна / расширенная информация может отображаться таким же образом без дополнительных запросов ajax к серверу.

Дело в том, что для загрузки всех данных нужно всего лишь один AJAX-запрос при загрузке страницы, тогда вся обработка выполняется с помощью javascript в браузере. Нет необходимости в нескольких AJAX-запросах или регулярных запросах к серверу. Есть ли название для этого шаблона дизайна? Или javascript-фреймворки, которые поддерживают это, так что мне не нужно самому кодировать все это в javascript?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Это, вероятно, называют плохой идеей.

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

Кроме того, я не уверен, почему библиотека JS должна специально поддерживать это. Большинство из них поддерживают выполнение запросов Ajax, и многие с компонентами пользовательского интерфейса также позволяют вам использовать источник данных (например, Dojo), поэтому вы просто выполняете запрос в обычном режиме и назначаете свою базу данных «в памяти» в качестве источника для компонента списка.

0 голосов
/ 14 мая 2013

Есть приложения, которые я видел, называются «Одностраничные приложения» (например, Gmail). Они не меняют страницу обычным способом, а просто обновляют DOM на стороне клиента. Я думаю, что они обычно делают более одного AJAX-запроса, чтобы получить данные по мере необходимости (поскольку вы обычно не хотите, чтобы вся БД загружалась в приложение при запуске), и дальнейшие AJAX-запросы для сохранения данных, но принцип это в основном то, что вы описываете.

На самом деле их не было в то время, когда был задан вопрос, но теперь это 2013 год: http://backbonejs.org/ (низкоуровневый) и Angular.js или Ember.js (высокоуровневые фреймворки JavaScript для одно- страница приложения).

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

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