Серверная часть или вычисления Javascript? - PullRequest
3 голосов
/ 14 марта 2012

В целом, для производительности лучше выполнять много вычислений данных на стороне сервера или на стороне javascript?

У меня есть куча данных, которые я отображаю на странице - и мне интересно, должен ли я отформатировать / проанализировать / выполнить вычисления на этих данных на стороне сервера (в python) и вернуть шаблон или я должен вернуть данные как есть и все мои вычисления / форматирование на стороне JavaScript?

Существуют ли общие правила при принятии этих решений?

Примеры вещей, которые я вычисляю - преобразование меток времени в даты.

Ответы [ 3 ]

2 голосов
/ 14 марта 2012

Прежде всего, вы должны рассмотреть возможность изменения формата данных для хранения данных для отображения.Он должен храниться уже таким удобным способом, чтобы его отображать - это вообще не требует никакой обработки.

Если вам все еще требуется какой-либо пересчет данных, рассмотрите возможность сделать это на стороне сервера, так как это дает вам возможность кэшировать этот результат (например, в mamceched ), поскольку это не имеет смысла вычислять их наобновление каждой страницы.

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

2 голосов
/ 14 марта 2012

Это во многом зависит от того, что вы пытаетесь сделать. Если график является динамичным и анимированным, единственным выбором может быть выполнение его на стороне клиента с помощью js. Это также зависит от того, сколько данных у вас есть. Я бы не рекомендовал делать это в js, если у вас более 10 МБ необработанных данных.

1 голос
/ 14 марта 2012

В дополнение к фактам, изложенным в thedk, вы также должны помнить, что вычисления, которые вы выполняете на стороне клиента, с большей вероятностью потерпят неудачу, поскольку клиент может не выполнить определенные предварительные условия.Подумайте о отключенном JavaScript или ненадежном интернет-соединении.Как правило, вы не можете контролировать свои данные, как только они покидают сервер.

Таким образом, было бы крайне желательно перенести только незначительные вычисления на клиентскую сторону.Что-то вроде формирования даты и времени может быть в порядке, но не пытайтесь анализировать весь ваш сайт с помощью JavaScript.Ваш веб-сайт должен работать (и выглядеть приемлемо), даже если на клиенте отключен JavaScript.

...