сайт тормозит из за глюков виджета одноклассников

Главные вкладки

Аватар пользователя brusee brusee 8 октября 2015 в 23:36

Сегодня столкнулся с проблемой: сайт очень долго грузился и прорисовка странички начиналась только после окончания загрузки.
Причина оказалась в следующем: на сайте был вставлен виджет одноклассников и сегодня у этой соцсети были проблемы доступа. и пока рзился их скрипт страничка не отрисовывалась.
Выход прост нужно обернуть код виджета в window.onload:

оригинальный код виджета:

<div id="ok_group_widget"></div>
<script>
!function (d, id, did, st) {
  var js = d.createElement("script");
  js.src = "https://connect.ok.ru/connect.js";
  js.onload = js.onreadystatechange = function () {
  if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") {
    if (!this.executed) {
      this.executed = true;
      setTimeout(function () {
        OK.CONNECT.insertGroupWidget(id,did,st);
      }, 0);
    }
  }}
  d.documentElement.appendChild(js);
}(document,"ok_group_widget","50582132228315","{width:250,height:335}");
</script>

измененный код:

<div id="ok_group_widget"></div>
<script>

window.onload= function(){
setTimeout(function(){

!function (d, id, did, st) {
  var js = d.createElement("script");
  js.src = "https://connect.ok.ru/connect.js";
  js.onload = js.onreadystatechange = function () {
  if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") {
    if (!this.executed) {
      this.executed = true;
      setTimeout(function () {
        OK.CONNECT.insertGroupWidget(id,did,st);
      }, 0);
    }
  }}
  d.documentElement.appendChild(js);
}(document,"ok_group_widget","50582132228315","{width:250,height:335}");

},3000);}

</script>

Думаю таймаут не обязателен, но я решил подстраховаться. после этого изменения сайт стал грузиться быстро (где то порядка 1-3 секунд) а через 3 секунды начиналась загрузка виджета, которая иногда продолжалась больше 40 секунд! Но теперь тормоза стороннего сайта не мешают...

Комментарии

Аватар пользователя dashiwa dashiwa 12 октября 2015 в 15:28

Ну файл виджета этого,может будет работать и так. И время на загрузку не будет тратиться. Возможно не получиться но это пару секунд

Аватар пользователя brusee brusee 12 октября 2015 в 15:49

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