Просто html / js или смесь с серверным кодом? - PullRequest
1 голос
/ 21 марта 2012

Intro

Я борюсь с выбором, который мне нужно сделать.Мы должны создать довольно сложное html-приложение, которое будет использовать множество динамических вещей, таких как сортируемые файлы jQuery, и другие изящные html5 вещи.В настоящее время у нас есть выбор между двумя вариантами.Я постараюсь описать их как можно лучше.Я хотел бы услышать ваше мнение об этом, и какой вариант вы выберете и почему.


Просто JS и HTML

Создайте все вJavaScript / HTML.Будет один HTML-файл, который будет включать другие части HTML-файлов.Так, например: index.html может включать menubar.html и news.html.Теперь я буду называть их «частичными», как в C # .NET

Это включение будет осуществляться через javascript.Мы будем использовать самодельный шаблонизатор, который будет получать частичные html-файлы с помощью вызова AJAX (jQuery).Итак, просто AJAX-вызов html-файла.Таким образом, он фактически читает текст внутри него.Затем прочитанный текст (который является html) будет помещен в index.html по указанному тегу, например;{content: menubar}

Но частичный html-файл может также содержать другие «теги», подобные этому:

Ваше имя пользователя: {username}

Каждый частичный вид будет принадлежать «viewmodel» (Мысобираюсь использовать архитектуру MVVM).Таким образом, шаблонизатор знает, в какой модели искать этот тег, и заменит этот тег соответствующим значением.

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

Все данные, которые необходимо отобразить, будут получены с сервера.Мы подключимся к нему через html5 сокеты.Возвращенные данные будут в формате JSON.


Сочетание HTML / JS и PHP

Другая возможность - использовать вместо этого среду PHP.Мы будем использовать шаблонизатор фреймворков для объединения всех частичных html-файлов в index.html.Когда происходит обновление, в файл PHP будет сделан вызов AJAX.Файл PHP, скорее всего, будет возвращать данные HTML вместо JSON.Потому что в этом случае мы не будем использовать систему шаблонов в javascript.Данные HTML, конечно же, будут получены из частичных файлов HTML.PHP заполнит все необходимые данные в этом частичном html-файле.

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


Ваше мнение?

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

Я думаю, что второй подход был бы лучше.Для меня сокетное соединение уже является своего рода наблюдателем.Он уведомляет вас, когда произошло событие (например, другой пользователь внес изменение).Мы также можем уменьшить количество файлов JS, так как на сервере будет выполняться много всего.

Но, возможно, ответ заключается в том, что действительно не имеет значения, какой выбор мы сделаем.

Есть мысли по этому поводу?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Важен ли SEO?Если это так, используйте серверные сценарии, такие как PHP, для создания своего HTML.

0 голосов
/ 21 марта 2012

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

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

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

Что касается вашей архитектуры, я ничего не могу сказать о MVVM, но я знаю шаблон module-sandbox-core.

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

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