Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Привет.
Представилась возможность написать с нуля один, уже работающий магазин.
Было решено написать всю админку без перезагрузки страниц, то есть с помощью window.history() HTML5 + ajax.
Laravel очень здорово дружит с backbone, поэтому решил остановиться на нем, но возникло куча непонятных вещей в логике построения приложения.
1) Где формировать шаблоны, на сервере или на клиенте?
Тоесть изначально я предположил что могу формировать шаблон (blade) и аяксом выдавать клиенту уже готовый шаблон со всеми данными. Но потом появилась идея клиенту отдавать куски шаблона, и с помощью JS шаблонизатора уже строить страницу на клиенте (а данные, например отдавать в json формате).
2)Стоит ли хранить страницу в кеше браузера, чтобы каждый раз не обращаться к серверу?
Ну тут вообще трудно понять как лучше сделать, ибо можно при переходе по страницам каждый раз брать данные из сервера, либо запихивать в pushState(data,title,href) и потом уже при переходе на ссылку, где уже был, брать всю страницу из кеша, а
данные фетчить (backbone.fetch()) из сервера.
3)Во всей админке будет оооочень много всяких js примочек типо wysiwyg, fileUploader ну и подобных модулей. Все js файлики подгружать не хочется сразу. Как правильно организовать подгрузку js + css файликов в текушую страницу?
Вот здесь узнал про requireJs. Пока только на стадии курения мануалов. Может уже есть у кого-то подобный опыт?
4)LongPoling. Да, планирую сделать получение данных налету, для этого буду использовать Redis из коробки. Это для всяких нотификейшенов (например, пришел заказ, сразу показали это пользователю...)
Здесь не совсем понятно как лучше создать логику нотификейшенов именно на сервере, как проверять что что-то произошло?
Ну в виде бреда: может вообще все на вебсокетах сделать? ))
PS. Сразу хочу извиниться за то, что мои вопросы косвенно связаны с Laravel, но все же.
Спасибо.
Не в сети
- 1) Где формировать шаблоны, на сервере или на клиенте?
Если целиком AJAX — естественно, на клиенте. Какой смысл загружать сервер этой работой? Да и потом, ты сам о заполнении данных написал. Я использую Handlebars — удобная библиотека, хотя хотелось бы чуть побольше гибкости (расширяемости), но в целом хватает. И синтаксис нормальный.
- 2) Стоит ли хранить страницу в кеше браузера, чтобы каждый раз не обращаться к серверу?
Зависит от того, какие данные. Так как передаваться будут только собственно данные (JSON), а не HTML, то это быстро — есть смысл кэшировать самый минимум, вроде списка разделов в меню и, возможно, каких-то больших кусков данных (таблиц, например) — и то если не будет проблем с совместной работой. Скажем, если это личный блог, то кэшировать таблицы можно, т.к. вряд ли человек откроет админку в двух разных браузерах. Если же это интернет-магазин, то два менеджера вполне могут обратиться к одной странице и изменить там что-то независимо друг от друга.
- 3) Как правильно организовать подгрузку js + css файликов в текушую страницу?
- 4) Здесь не совсем понятно как лучше создать логику нотификейшенов именно на сервере, как проверять что что-то произошло?
Если я правильно понял, о чём речь, то как раз сервер заносит в очередь сообщения, а клиент их оттуда читает (через серверный интерфейс).
- может вообще все на вебсокетах сделать? ))
Это совсем разные технологии, до начала работы решите, в какую сторону будете копать. У каждой свои плюсы и минуты. Некоторые, как водится, субъективные.
- PS. Сразу хочу извиниться за то, что мои вопросы косвенно связаны с Laravel, но все же.
Для этого этот раздел и создан. Всё нормально. Только просьба делать поменьше опечаток.
Не в сети
Спасибо большое за ответ.
Прошу прощения за опечатки. После работы, ночью писать трудно без ошибок).
Если целиком AJAX — естественно, на клиенте.
А где хранить шаблоны? Админка довольно большая и запихивать шаблоны в те же js файлы не хорошо.
А таскать куски html кода в json... Ну не знаю, насколько это правильно.
Со всем остальным более-менее понятно.
Не в сети
- А где хранить шаблоны?
Вариантов несколько, как и с JS-файлами:
В случае первого варианта я храню шаблоны внутри
xml<script type="text/template">
.
Не в сети
Страницы 1