Вам может пригодиться следующий вопрос: Smarty Vs. Javascript / AJAX
Я поднял несколько пунктов в своем ответе на этот вопрос:
Вы должны использовать серверные сценарии для отображения любых данных, которые известны на момент загрузки страницы . В этом случае вы знаете, что список продуктов должен отображаться. Тот факт, что ответы на вопросы должны быть показаны, известен при загрузке страницы.
Вы должны использовать только вызовы AJAX для загрузки динамических данных, которые не известны на момент загрузки страницы . Например, когда вы нажимаете ссылку «комментарии» под вопросом или ответом в переполнении стека. Тот факт, что вы хотите просмотреть комментарии к конкретному вопросу, неизвестен при загрузке страницы.
Javascript должен не необходим для доступа к основным функциям вашего сайта .
Вы должны изящно снизить функциональность, когда Javascript отключен . Например, переполнение стека работает просто отлично с отключенным Javascript. У вас нет доступа к предварительным просмотрам Markdown в режиме реального времени или динамическим уведомлениям о значках, но основные функции по-прежнему не повреждены.
Один HTTP-запрос на сгенерированную сервером страницу будет загружаться значительно быстрее, чем запрос на загрузку страницы, которая выполняет пять или шесть дополнительных вызовов AJAX , особенно на соединениях с высокой задержкой (таких как сотовая связь). сети). См. Yahoo Рекомендации по ускорению работы вашего сайта .
Вы должны думать о Javascript как о бонусной функции, которая может быть не включена, а не как о чем-то, что следует использовать для создания критических частей вашего сайта. Есть исключения из этого правила. Если вы хотите выполнить какое-то разбиение на страницы, при котором вы нажимаете кнопку «следующая страница», и меняется только список продуктов, AJAX может быть правильным выбором. Однако вы должны убедиться, что пользователи без Javascript не исключены из просмотра всего списка.
Нет ничего более расстраивающего, чем когда страница недоступна, потому что веб-разработчик не подчиняется принципу KISS . В качестве примера возьмем Friendly's Restaurants . Я хотел проверить их меню , пока я был в торговом центре, поэтому я загрузил их сайт на свой iPhone, только чтобы узнать, что вы буквально не можете получить какую-либо значимую информацию о ресторане без Flash. Приятно иметь модные меню с крутящимися десертами повсюду, но, в конце концов, я просто хотел увидеть элементы в их меню. Я не мог этого сделать, потому что им требовался Flash. В этом случае было бы полезно постепенное снижение качества обслуживания.
Некоторые вещи в Интернете не могут быть эффективно выполнены без Javascript. Отображение списка продуктов не один из них. Если вы все еще не уверены, посмотрите, как работают другие популярные сайты. Я думаю, вы найдете, что большинство успешных, хорошо спроектированных сайтов следуют рекомендациям, перечисленным выше.