Виджет Twitter не всегда заполнен - PullRequest
4 голосов
/ 15 октября 2011

Я показываю канал Twitter из виджета канала на моем веб-сайте. Иногда виджет любит не отображать какую-либо информацию. Я полагаю, это потому, что API перегружен. Независимо от того, есть ли какой-либо известный способ отобразить сообщение об ошибке в случае, если Twitter не может загрузить мой канал? Кто-нибудь еще сталкивался с этими проблемами?

1 Ответ

2 голосов
/ 29 мая 2012

Во-первых, используйте подходящий прокси-сервер записи http для вашей ОС (Fiddler2 - фантастика, если вы работаете в Windows), сдвигайте F5 страницу до тех пор, пока не получите ошибку.

Фильтр журнала для хостов widgets.twimg.com или api.twitter.com ... Это диагностирует точку сбоя, потому что:

  1. Если запрос js (или css) к widgets.twimg.com завершается неудачно (ищите 404 или усеченный текст), тогда javascript не удалось получить. Вряд ли, поскольку файлы должны быть статичными.
  2. Если запрос api.twitter.com отсутствует, то javascript не может быть запущен.
  3. Если запрос api.twitter.com происходит, но в ответе происходит сбой (неверный код ответа или ответ выглядит ненадежным), то API-интерфейс Twitter не может дать вам фид.

Для обнаружения 1 в javascript вы можете обнаружить сбой загрузки с помощью тайм-аута и проверить загрузку, которую он загрузил (простая проверка заключается в том, что window.twttr существует - однако не очень хороший тест, потому что он устанавливается в верхней части javascript , таким образом, только подтверждает, что синтаксис JavaScript был действительным и начал работать). (Может потребоваться onreadystate для определения нагрузки для IE?)

<script src="http://widgets.twimg.com/j/2/widget.js" onload="twitterloaded()"></script>

Для обнаружения 2 запустите страницу с отладчиком.

Для 3, при быстром взгляде на код, код повторяет запросы к API-интерфейсу Twitter (возможно, вы захотите посмотреть параметры конфигурации для API-интерфейса), и похоже, что существуют переменные API-интерфейса для проверки, все ли работает например TWTR.Widget.isLoaded _isRunning и _hasOfficiallyStarted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...