Должен ли я обрабатывать JSON во внешнем интерфейсе или бэкэнде, что быстрее? [закрыто]


11

Я получаю ответ от API в виде ответа json. Я пишу в Python для бэкэнда.

Для заполнения пользовательского интерфейса команде внешнего интерфейса нужна информация из необработанного ответа json, поэтому мы должны упорядочить json и упростить для них получение информации.

Теперь я могу заказать json в определенном формате и передать его команде внешнего интерфейса, или я могу передать необработанный ответ json * команде внешнего интерфейса и позволить им обработать порядок размещения json и использовать его для своего пользовательского интерфейса.

Помните, мой размер файла JSON составляет 15 МБ .

Что быстрее и лучший принцип дизайна?

Обрабатывать в бэкэнде, затем выдвигать во внешний интерфейс или обрабатывать во внешнем интерфейсе?


На мой взгляд, обработка на сервере лучше в вашем случае из-за размера и длины данных, так как обычно серверы дают гораздо лучшую производительность, чем браузеры на ПК.
Умайр Хан

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

2
15 МБ это довольно много, я бы сделал это на бэкэнде.
Борис

Ответы:


7

В идеале, если размер файла составляет 15 МБ, он будет загружен в память браузера, что замедлит его работу, я бы предложил выполнять эту операцию только в бэкэнде.

Вы также можете перейти по этой ссылке для справки. Разница между Python и Javascript и что использовать

  1. Одним из важных аспектов является то, что JavaScript сложно отлаживать. Вы можете заметить, что, несмотря на то, что ваш код не содержит ошибок, программа не будет работать (молча не работает).


2

Я хотел бы предложить выполнить это на бэкэнде, некоторые ключевые причины, которые я бы предложил, это:

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

0

Как уже отмечали другие, есть немало веских причин, чтобы предпочесть обработку на серверной части:

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.