Лучше ли отображать последние твиты на веб-странице, используя PHP API или Javascript? - PullRequest
5 голосов
/ 20 января 2010

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

Мне удалось отобразить последние твиты двумя способами.

  1. Использование PHP Twitter библиотеки (автор Аарон Бразел). Используя этот метод, мой PHP-код должен ждать ответа от Twitter, прежде чем моя страница может быть завершена и отправлена ​​клиенту. Это может привести к тому, что время загрузки страницы будет совершенно непредсказуемым и более чем вероятно замедлит загрузку страницы настолько, что это будет раздражать пользователей.

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

Я хотел бы знать, есть ли какие-либо плюсы и минусы в использовании этих различных методов для отображения последних твитов пользователя, а также, если есть, возможно, другое решение, на которое я могу обратить внимание, которое включит пользовательские стили CSS и обеспечит хорошую страницу производительность нагрузки?

Кроме того, как эти два метода влияют на то, как Twitter применяет ограничение скорости? Используя PHP, я могу кешировать твиты и, следовательно, меньше звонить в Twitter, а при использовании JavaScript, насколько я знаю, это невозможно?

Ответы [ 8 ]

10 голосов
/ 20 января 2010

Вы можете использовать пользовательский стиль CSS обоими способами, поэтому это не должно быть проблемой

  1. при использовании PHP API, попробуйте кешировать всю необходимую информацию и, например, поместить ее в. База данных (и отправлять запросы в твиттер каждые 5-10 минут, или запускать скрипт обновления через cron - так как я в последний раз проверял, есть ли ограничения на запросы в твиттере, которые вы можете выполнять в определенное время) 1010 *

  2. с помощью Javascript для обновления твитов вы отключаете веб-пауков для индексирования этих твитов на своей странице (также инвалиды, как правило, не поддерживают JS ...)

EDIT

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

Ограничение тарифов Twitter API

Как читается на twitter.api: Twitter ограничивает количество запросов REST 150 запросов / час (с использованием правил на основе IP или подсчета запросов для использования аутентифицированного API)

GET запросов, таких как получение твиттер-фидов, временных шкал через остальные API do count

POST запросы типа обновления статусов не учитываются

Состояние ограничения учетной записи доступно на http://twitter.com/account/rate_limit_status.format, где вы можете проверить, сколько запросов вы можете сделать за указанный срок

3 голосов
/ 20 января 2010
  1. Pro: Абсолютно независим от пользовательских настроек. Con: Что вы сказали - если Twitter работает медленно, ваш сайт работает медленно + слишком много запросов с вашего сервера -> увеличена нагрузка на сервер и т. Д.

  2. Pro: меньше работы для вашего сервера - скорость загрузки зависит только от скорости вашего сервера. Против: Не у всех включен JavaScript, и даже тогда у вас может появиться ужасная задержка в появлении сообщений в Twitter.

Я бы лично выбрал вариант № 1.

1 голос
/ 20 января 2010

попробуйте использовать sweetcron. Вы можете сделать это работой cron. Он будет получать каналы Twitter и помещать их в базу данных. поэтому ссылка на твиттер не повлияет на загрузку вашей страницы.

подробнее здесь: http://code.google.com/p/sweetcron/

0 голосов
/ 17 мая 2010

На моем сайте мое решение состоит в том, чтобы загрузить страницу как обычно, а затем добавить несколько тикеров, чтобы показать, что еще есть данные. Затем у меня есть доступ к PHP-скрипту с помощью AJAX, который загружает данные из Twitter и выводит их хорошим способом - я не реализовал кэширование, потому что у меня чрезвычайно низкий объем трафика, но я мог бы в будущем. У меня также есть тег <noscript> с iFrame для тех необычных людей, которые не имеют Javascript!

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

0 голосов
/ 20 января 2010

Оба, создайте список твитов, используя PHP, затем используйте простой плагин jQuery (или что-то подобное), работающий на стороне клиента, чтобы поддерживать его в актуальном состоянии.

  • Работает для клиентов без JavaScript
  • Позволяет реализовать кэширование на стороне сервера
  • Google его проиндексирует (что может быть хорошо?)
0 голосов
/ 20 января 2010

Я не могу ничего добавить к тому, что уже было упомянуто.

PHP был бы лучшим способом, но обязательно следите за тем, чтобы результаты кешировались через регулярные промежутки времени.Вы можете просто проанализировать RSS-канал своего профиля Twitter с помощью любого из встроенных в PHP синтаксических анализаторов XML / DOM для вывода в любом формате, который вам нужен, и в любом желаемом стиле.

Недостаток использования метода JavaScript дляпоказывать твиты, как уже упоминалось, не будет сканироваться пауками поисковой системы и не будет работать для посетителей с отключенным JavaScript (естественно).

0 голосов
/ 20 января 2010

Я бы пошел на более гибкий и стабильный подход:

Проверяйте наличие новых твитов в фоновом режиме (например, каждые 5 минут) и сохраняйте их в своей базе данных. Таким образом, у вас есть все ваши твиты на своем собственном сервере. Это также предотвращает загрузку вашего сайта целую вечность, когда Twitter не работает. Не говоря уже о том, что он также работает, когда JS отключен;)

Здесь есть задержка, но вы можете уменьшить время сна, но на самом деле я думаю, что 5 минут - это более чем достаточно.

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

0 голосов
/ 20 января 2010

Мое мнение - поступай на стороне клиента.

  1. Зачем тратить на это процессорное время? Пусть клиент справится с этим.
  2. Google его проиндексирует, и когда пользователь зайдет туда, он увидит что-то другое.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...