Embed presentation



![Google Analytics Async
Snippet
var 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);](https://image.slidesharecdn.com/itjam-externalwidgetsperformance-120919024709-phpapp02/85/External-Widgets-Performance-4-320.jpg)
![Рабочая модификация
<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>](https://image.slidesharecdn.com/itjam-externalwidgetsperformance-120919024709-phpapp02/85/External-Widgets-Performance-5-320.jpg)



Документ описывает проблемы с производительностью внешних виджетов и скриптов, приводящие к зависанию страницы при парсинге. Предложенные решения включают добавление виджетов через DOM, использование onload/onreadystatechange и загрузку в скрытые iframe для улучшения работы страницы. Также перечислены преимущества подхода, такие как предотвращение зависания страницы и централизованное управление виджетами.



![Google Analytics Async
Snippet
var 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);](https://image.slidesharecdn.com/itjam-externalwidgetsperformance-120919024709-phpapp02/85/External-Widgets-Performance-4-320.jpg)
![Рабочая модификация
<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>](https://image.slidesharecdn.com/itjam-externalwidgetsperformance-120919024709-phpapp02/85/External-Widgets-Performance-5-320.jpg)

