Как ускорить загрузку Google AdSense и аналитики? - PullRequest
3 голосов
/ 16 февраля 2009

Это может подпадать под категорию «ты не можешь», но я подумал, что было бы разумно хотя бы посмотреть, могу ли я что-то сделать с этим.

Согласно FireBug, основным узким местом во время загрузки моей страницы является разрыв между загрузкой html и загрузкой Google AdSense и аналитики. Обратите внимание на скриншот ниже, что первоначальный GET занимает всего 214 мс, а загрузка AdSense + Analytics занимает примерно 130 мс вместе. Однако полное время загрузки страницы составляет 1,12 секунды из-за большой паузы между начальным GET и загрузкой adsense / analytics.

Если это вообще что-то меняет, сайт запускается из стека ASP.NET MVC RC1.

альтернативный текст http://kevinwilliampang.com/pics/firebug.jpg

Обновление: после удаления adsense и аналитики я все еще вижу медленное время отклика. Наведя курсор на начальный запрос GET, я вижу следующие скорости: 96 мсек на получение данных, 736 мс DOMContentLoaded (событие), 778 мс «загрузка» (событие). Я предполагаю, что производительность является результатом моего собственного jQuery javascript, обработка которого связана с событием ($ document) .ready ()?

Ответы [ 6 ]

4 голосов
/ 16 февраля 2009

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

edit : На самом деле я только что нашел этот интересный пост в блоге о том, как ускорить аналитику, разместив собственный файл urchin.js. Может быть, стоит посмотреть.

1 голос
/ 16 февраля 2009

Как бы то ни было, я довольно серьезно исследовал это только на этой неделе. Короче говоря, вы облажались. Как говорили другие, лучшее, что вы можете сделать, это поместить его в конец списка запросов и сделать весь ваш код зависимым от событий готовности, а не от загрузки - jQuery здесь действительно хорош. Некоторая часть js является статической, поэтому вы можете клонировать ее локально, если будете следить за ней в целях обслуживания.

Код Google не так полезен, как мог бы быть в этой области *, но это их игра в мяч, и все, что вы сделаете, чтобы изменить его, будет и сложным, и рискованным. Теоретически, перенос с неблокирующим вызовом скрипта в заголовке возможен, но вряд ли принесет вам пользу, учитывая дополнительную абстракцию, и в конечном итоге с AdSense ваша полезная нагрузка будет источником HTML, а не скриптом.

* возможно, у Google есть веская причина, но я ничего не могу вывести из кода, который они выставляют

1 голос
/ 16 февраля 2009

Я никогда не видел ничего подобного, используя Firebug в Stack Overflow, и мы также используем Analytics.

Я просто запустил трассировку и вижу запрос на

http://www.google-analytics.com/__utm.gif?...

Происходит непосредственно после события DOMContentLoaded (синяя линия) . Так что сначала я заподозрил бы AdSense. Вы пытались отключить это?

0 голосов
/ 16 февраля 2009

Может быть, ваша страница просто так долго разбирается? Кажется, ничего сетевого не происходит. Он просто ждет около секунды, прежде чем запросы adsense / analytics будут запущены. Я не думаю, что у вас есть несколько сотен таблиц на странице или что-то? ;)

0 голосов
/ 16 февраля 2009

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

Возможно, вы могли бы вставить скрипт в заголовок при загрузке страницы, но я не уверен, как это повлияет на urchin.js.

0 голосов
/ 16 февраля 2009

Вероятно, вы ничего не можете сделать, кроме размещения этих включений прямо перед закрывающим тегом body, если вы этого еще не сделали. JavaScript включает в себя блочные параллельные HTTP-запросы, поэтому они должны быть исключены из <head>

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