Я сделал некоторые веб-проекты, и большинство трудностей, с которыми я встречался (вопросы, путаницы), можно было бы выяснить с помощью. Но у меня все еще есть важный вопрос, даже после того, как вы спросите некоторых опытных разработчиков: Когда функциональность может быть реализована как с серверным кодом, так и с клиентским скриптом (JavaScript), какой из них следует предпочесть?
Простой пример:
Чтобы сделать динамическую страницу html, я могу отформатировать страницу в серверном коде (PHP, python) и использовать Ajax для извлечения отформатированной страницы и визуализации ее напрямую (логика на стороне сервера, меньше на стороне клиента).
Я также могу использовать Ajax для извлечения данных (не форматированных, JSON) и использовать скрипты на стороне клиента для форматирования страницы и визуализации ее с большей обработкой (сервер получает данные из БД или другого источника и возвращает его для клиента с JSON или XML. Больше логики на стороне клиента и меньше на сервере).
Итак, как я могу решить, какой из них лучше? Какой из них обеспечивает лучшую производительность? Зачем? Какой из них более удобен?
При развитии JS-движков браузеров JS можно интерпретировать за меньшее время, поэтому следует ли использовать клиентские скрипты?
С другой стороны, с развитием аппаратного обеспечения производительность сервера растет, а стоимость логики на стороне сервера уменьшается, поэтому следует ли использовать серверные скрипты?
EDIT:
С ответами я хочу дать краткий обзор.
Плюсы логики на стороне клиента:
- Улучшен пользовательский интерфейс (быстрее).
- Меньшая пропускная способность сети (низкая стоимость).
- Повышенная масштабируемость (уменьшенная загрузка сервера).
Преимущества серверной логики:
- Проблемы безопасности.
- Лучшая доступность и доступность (мобильные устройства и старые браузеры).
- Лучший SEO.
- Легко расширяемый (может добавлять больше серверов, но не может сделать браузер быстрее).
Кажется, что нам нужно сбалансировать эти два подхода, когда сталкиваетесь с конкретным сценарием. Но как? Какая лучшая практика?
Я буду использовать клиентскую логику, за исключением следующих условий:
- Критическая безопасность.
- Специальные группы (отключены JavaScript, мобильные устройства и т.д.).