External Widgets Performance

370 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
370
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

External Widgets Performance

  1. 1. External widgets performance
  2. 2. Проблема - внешниевиджеты и скрипты Страница виснет на парсинге.
  3. 3. Решение• Добавление через DOM• Связывание черезonload/onreadystatechange• document.write() o Делаем свой document.write() o Выносим виджет в отдельныйневидимый элемент o Загружаем в скрытый iframe,по onload копируем на страницу
  4. 4. Google Analytics Async Snippetvar ga = document.createElement(‘script’);ga.type = ‘text/javascript’;ga.async = true;ga.src = (‘https:’ == document.location.protocol ?‘https://ssl’ : ‘http://www’) + ‘.google-analytics.com/ga.js’;var s =document.getElementsByTagName(‘script’)[0];s.parentNode.insertBefore(ga, s);
  5. 5. Рабочая модификация<script>(function(d, s) { var js, fjs = d.getElementsByTagName(s)[0], load =function(url, id) { if (d.getElementById(id)) {return;} js = d.createElement(s); js.src = url; js.id = id; fjs.parentNode.insertBefore(js, fjs); }; load(widget1.js, fbjssdk); load(widget2.js, gplus1js); load(widget3.js, tweetjs);}(document, script));</script>
  6. 6. Преимущества подхода• Страница не виснет из-за сторонних виджетов• Управление всеми стороннимивиджетами из одного места• Гарантия подключения узлавсего один раз(благодаря присвоению идентификатора)

×