Более быстрый доступ к API через javascript или серверные библиотеки

#performance #api

#Производительность #API

Вопрос:

Я хотел бы отобразить информацию, полученную из веб-API. (скажем, instagram или last.fm )

Существует ли вообще заметная разница в скорости между использованием серверной (Ruby) или клиентской (JS) библиотеки API?

Я бы предположил, что Javascript будет быстрее, поскольку вы можете обращаться к API асинхронно после загрузки страницы в браузере клиента

Просто интересно, существует ли для этого «лучшая практика», поскольку библиотеки API обычно существуют как на стороне клиента, так и на стороне сервера.

Ответ №1:

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

При небольшом объеме данных / операций вы, скорее всего, будете ограничены самим веб-запросом, а не вычислительной мощностью JavaScript или Ruby.

Я не составил исчерпывающий список, но некоторые общие моменты, которые следует учитывать:

На стороне клиента:

  • Вычислительная мощность передается клиенту, вы используете меньше ресурсов, но производительность будет меняться.
  • API должен поддерживать либо JSONp, либо Access-Control-Allow-Headers.
  • Очень медленно для больших операций с большими наборами данных.
  • Любой ключ API будет доступен для просмотра любому посетителю вашего сайта.
  • Первоначальное время ответа с вашего сервера будет быстрее, но если вы загружаете большую часть своего контента из запроса API, вам все равно придется подождать.

На стороне сервера:

  • Не будет предоставлять ключ API клиенту.
  • Использует больше ресурсов, но может обрабатывать большие объемы данных / операций
  • Возврат начальной страницы займет больше времени.
  • Иногда имеет дополнительные пользовательские функции / методы, поскольку поддерживаются OAuth или другие функции безопасности.

Ответ №2:

Одно большое отличие заключается в том, что JS API не увеличивает нагрузку на ваш сервер, поэтому упрощает масштабирование вашего веб-приложения.

Кроме того, в целом использование JS, вероятно, будет быстрее для пользователя, потому что браузер клиента будет получать данные непосредственно с сервера web-API, а не через ваш сервер.