Получение удаленных данных - PHP или JavaScript? - PullRequest
0 голосов
/ 26 сентября 2010

Какой метод вы бы выбрали для получения твитов из Twitter, например?

  • Использование json с jQuery (например, http://juitter.com/),, когда клиент выполняет запрос.
  • используя PHP, например, CURL, где сервер выполняет запрос

Каковы преимущества / недостатки обоих?

Ответы [ 7 ]

2 голосов
/ 26 сентября 2010

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

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

Но наиболее очевидным преимуществом подхода на стороне клиента является отсутствие проблем.

1 голос
/ 26 сентября 2010

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

  • Поскольку твиты отображаются непосредственно в браузере в реальном времени, использование jQuery хорошо дополняет этосценарий.Это быстро обновляет страницу вместе с вашими твитами (используя несколько асинхронных вызовов ajax ofcourse).
  • Хорошо, когда вы переходите на серверную сторону, требуется дополнительный прием обратно на сервер и обратно к клиенту.Вам нужна эта поездка, когда все, что вам нужно, это отображать только твиты?Твиты - это просто сообщения в социальных сетях (скажем, привет !!!), и они не должны содержать каких-либо вредоносных материалов.
  • Обычно вы применяете подход на стороне сервера, когда вам необходимо выполнить проверку данных перед их отображением в браузере.Для твитов это не обязательно.
1 голос
/ 26 сентября 2010

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

1 голос
/ 26 сентября 2010

Существует различие между обоими подходами.При использовании стороны сервера вне HTTP-запросов вы извлекаете данные на сервер.Если вы хотите, чтобы эти данные были видны клиенту, вы должны отправить их со следующим запросом, который клиент отправляет на ваш сервер.С серверными запросами вы также можете выполнять собственные HTTP-запросы и междоменные запросы.

Междоменные запросы на стороне клиента извлекают данные непосредственно клиенту.Вы можете отобразить это клиенту в том же экземпляре, когда запрос возвращает данные , но , если вы хотите, чтобы данные на стороне сервера (сохраняя твиты в БД) вы должны отправить их от клиента, обратно ксервер.Javascript не может выполнять междоменные запросы XHR.Чтобы сделать это, вы (или библиотеки, которые это делают) предпринимают некоторые обходные пути: с помощью iframes, включая включение файлов JS, которые уже содержат необходимую вам информацию, и т. Д.

Если вам нужно использовать Интернетсервис, я советую использовать бэкэнд в качестве сервисного клиента и либо использовать своевременное извлечение со стороны клиента, либо использовать некоторые методы «кометы».

1 голос
/ 26 сентября 2010

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

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

1 голос
/ 26 сентября 2010

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

0 голосов
/ 26 сентября 2010
//for client making request   

     jQuery.ajax({
                url:'target_url',
                type:'get',
                dataType:'jsonp',
                success:function(data){
                      //do something with data
                   } 
        });

    //note: dataType is jsonp not JSON as calling twitter from your domain would 
    //not be allowed by browser(cross domain request are not allowed) 
    //so u have  use jsonp.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...