Вопрос

У меня есть сомнения: - Существуют ли какие-либо стандарты / соглашения, когда я должен использовать " Smarty templating " и когда я должен использовать вызовы Javascript Ajax для создания контента? Я могу использовать вызовы Ajax / Javascript для динамического создания контента.

Мое приложение использует Ajax и Smarty , но я хочу установить правило для разработчиков

Это было полезно?

Решение

Вам следует использовать только вызовы AJAX для загрузки динамических данных, которые неизвестны на момент загрузки страницы . Например, когда вы нажимаете " комментарии " ссылка на заданный вопрос / ответ о переполнении стека, вызов AJAX для динамической загрузки данных. Это результат того, что пользователь щелкнул ссылку на комментарий, а не результат загрузки страницы. Вы не знаете, что должны показывать эти комментарии во время загрузки страницы, поэтому в этом случае целесообразно сделать вызов AJAX.

Вы должны использовать шаблоны для отображения любых данных, которые известны на момент загрузки страницы . Это облегчает общение с людьми, у которых отключен Javascript (я знаю, не так много), и обеспечивает четкое отделение логики от представления. Еще одним важным преимуществом использования шаблонов является тот факт, что он может значительно уменьшить количество HTTP-запросов, сделанных из браузера клиента.

Это особенно важно в мире мобильных браузеров, где самым большим препятствием является задержка, а не пропускная способность. Например, в мобильном Safari один HTTP-запрос на страницу с шаблоном Smarty будет загружаться значительно быстрее, чем запрос на загрузку страницы с шаблоном Javascript , который выполняет пять или шесть дополнительных HTTP-запросов. Это особенно актуально при использовании EDGE, 3G и других услуг мобильной передачи данных без Wi-Fi. На самом деле, это так важно, что это первое руководство в Рекомендации по ускорению вашего сайта .

В идеале, вы также должны изящно снижать функциональность, когда Javascript отключен . Хорошим примером является окно автозаполнения поиска. Очень здорово, что предложенные поисковые термины магически появляются при вводе текста, но если вы отключите Javascript, у вас все равно будет функциональное окно поиска. Это классический пример хорошего снижения качества обслуживания. Переполнение стека, как правило, делает отличную работу, обеспечивая прочную работу без Javascript. Одно из мест, где оно не хватает, - в комментариях. Когда Javascript отключен, отображаются только самые популярные комментарии, а публикация новых комментариев отключается.

Если в этом нет крайней необходимости, вы должны думать о Javascript как о бонусной функции, которая может быть не включена, а не о том, что следует использовать для создания критических частей вашего сайта . Очевидно, есть исключения (некоторые вещи просто невозможно сделать без Javascript). Например, вы заметите, что переполнение стека очень удобно при отключенном Javascript. Вы не будете получать обновления в режиме реального времени, когда публикуются новые ответы, или модные предварительные просмотры Markdown в реальном времени, но основная функциональность все еще там. Все "тяжелый подъем" делается с помощью HTML и CSS. Javascript - это просто глазурь (правда, очень хорошая глазурь) на торте. Это своего рода примечание, но это достаточно важно упомянуть.

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top