Обработка на стороне клиента по сравнению с обработкой на стороне сервера, которая выполняется быстро?
Какая обработка является быстрой на стороне клиента или на стороне сервера? для обработки на стороне клиента браузеру необходимо сначала загрузить каждый JavaScript, а при программировании на стороне сервера все происходит на сервере без загрузки чего-либо на компьютер пользователя?
Если для определенной функциональности у нас есть решение как на javascript, так и на php/asp, то что следует выбрать и почему?
3 answers
Предварительная загрузка JavaScript обычно выполняется быстрее, так как не требуется поездка на сервер туда и обратно (и обычно наиболее трудоемкими являются сетевые операции).
Тем не менее, всегда должно быть решение на стороне сервера для любой важной функциональности (поскольку поддержка JS не гарантируется), и производительность не должна быть первым, о чем вы думаете (доверие должно быть, например, вы не можете доверять коду на стороне клиента, чтобы убедиться, что данные не будут уничтожены вашим компьютером). база данных).
Здесь необходимо учитывать несколько факторов и несколько компромиссов.
Серверная машина обычно сильнее клиентской. ОТО, обычно клиентов гораздо больше, чем серверов. Таким образом, когда #клиенты превышают определенный порог, обработка на стороне клиента происходит быстрее (серверу придется обрабатывать вычисления от всех клиентов, что перевесит его более мощный процессор).
Но, если обработка ограничена в основном пропускной способностью сети, то есть: большинство время обработки тратится на загрузку материала, и загруженный материал относительно стабилен, тогда будет быстрее загрузить один раз на сервер и выполнить обработку там.
Наконец, если результаты вычислений не меняются от одного клиента к другому, то - опять же - имеет больше смысла вычислять их раз и навсегда на сервере.
Я большой поклонник переноса всех возможных процессов в браузере.Если вы нацелены на браузеры с поддержкой JS (т.Е.: для веб-приложения)
В основном для разгрузки сервера процесса рендеринга и сохранения некоторой пропускной способности сети.
Рендеринг HTML на стороне клиента сегодня действительно быстрый, даже на мобильных телефонах с поддержкой Интернета, почему бы не использовать эту компьютерную мощность, доступную в браузере?
И как только HTML, CSS и JS окажутся в кэше браузера (в текущем сеансе или в предыдущем), только данные передаются по сети.
И если вы разместите все эти статические файлы на CDN, представьте себе увеличение скорости.
Эти опции, по моему опыту, дают пользователю гораздо более отзывчивый интерфейс.
Мы немного помешаны на скорости, и это был дизайн, который мы использовали для создания нашего веб-приложения:
- статические файлы на CDN
- серверная часть для обслуживания только служб JSON и обеспечения безопасности
- и мы используем ЧИСТЫЙ для отображения JSON в HTML-клиенте сторона