Может ли Facebook / Google заставить сайт не загружаться? - PullRequest
0 голосов
/ 07 ноября 2011

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

В этом случае может показаться, что ваш сайт зависает в ожидании ответа от внешнего компонента / веб-сайта (глядя на ваш код, я вижу ссылки на Facebook, Google и онлайн-приложения с первого взгляда).

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Не зная подробностей, я могу сказать вам, что когда вы загружаете Javascript с помощью тегов <script></script>, браузер ожидает завершения запроса, прежде чем двигаться дальше.Таким образом, если вы загружаете файлы JS в разделе <head></head>, на экране ничего не будет отображаться, пока они не загрузятся успешно.Здесь 404s убьют вас, как и медленные соединения.

Если у вас есть встроенный JS, лучше поместить его в самый конец раздела <body></body>, чтобы он не прерывал рендеринг браузера.Сделайте это для файлов JS в вашем разделе <head></head>, если ваша архитектура кода позволяет это.

0 голосов
/ 07 ноября 2011

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

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

edit: @Jason McClellan отвечает прямо сейчас.Я полагаю, что комбинация наших ответов решит ваш вопрос.Я никогда не включаю скрипт в голову, если не контролирую ресурс!Это может на неопределенный срок повесить вашу страницу.

edit2: Не знаю, почему я получил оценку за этот ответ, просто пытался связать его с моим опытом.У меня нет особого опыта работы с плагинами Facebook, но когда я заметил проблему с моим плагином Twitter, я сделал именно то, что сказал @Jason McClellan в своем ответе, чтобы убедиться, что все ваши html-файлы будут обработаны до того, как скрипты будут запрошены, а затемгарантирует, что страница может отображаться корректно с содержимым Twitter или без него, чтобы взаимодействие с пользователем не зависело от внешнего ресурса.Плагин twitter, который я использовал, имел функцию инициализации, которую мне пришлось вызвать, чтобы запустить скрипт.Самый простой способ вызвать это было бы с помощью:

    <body onload='init()'>

если у вас есть другой скрипт, который вы загружаете со страницы, вы можете использовать что-то вроде

    window.onload = function() {
        init();
    }

изнутри вашеговнешний скрипт.

Извините, я не могу дать ответ, специфичный для плагина Facebook.Может быть, кто-то с большим опытом работы с плагинами Facebook мог бы уточнить в комментариях: D

edit3: также этот инструмент, основанный на сообществе, предполагает, что несколько человек увидят немного простоя Facebook, когда вы его испытали - Статус Facebook на DownRightNow

edit4: У меня нет «Премьеры», чтобы комментировать вопрос Джейсона, так как я здесь довольно нова… но в ответ на ваш комментарий, материал в голове, который выОписание - это то, что загружается в схему для языка разметки Facebook (fbml), поэтому язык разметки, такой как html, предназначен для использования API Facebook.Таким образом, вы можете делать такие вещи, как:

    <fb:comments xid="titans_comments" canpost="true" candelete="false" returnurl="http://apps.facebook.com/myapp/titans/">
    <fb:title>Talk about the Titans</fb:title>
    </fb:comments>

Чтобы добавить некоторые комментарии прямо на вашу страницу - Руководство разработчика fbml

Ваш комментарий также предполагает, что вы не включаетескрипт для загрузки вашей страницы, чтобы он отображал наши предыдущие ответы не так важно, вам нужно включить fbml в заголовок, прежде чем использовать fbml на своей странице, поэтому не перемещайте его: D

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

Удачи

...