Ответ 1
Существует атрибут defer
, который можно разместить в блоках script, чтобы отложить его выполнение до тех пор, пока страница завершает загрузку.
<script src="myscript.js" type="text/javascript" defer>
// blah blah
</script>
Я не уверен в общих рекомендациях об использовании этого атрибута.
EDIT: Как отметил @David, используйте defer="defer"
для XHTML
И вы всегда можете поместить код внутри события window.onload
, чтобы он выполнялся после загрузки страниц:
window.onload = function () {
// ad codes here
};
Но более поздний подход может создать некоторые проблемы, вы можете сначала проверить его.
Более подробную информацию о этом сообщении в блоге Дин Эдвардс, парень, который написал знаменитый javascript packer.
РЕДАКТИРОВАТЬ: Если размер самого рекламного кода является проблемой, вы всегда можете отложить загрузку, объединив вышеуказанные методы с помощью script injection через document.write
:
function loadScript(src) {
document.write('<script src="' + src + '" type="text/javascript"></script>');
}
Таким образом, полученный код может выглядеть примерно так:
<script type="text/javascript" defer>
function loadScript(src) {
document.write('<script src="' + src + '" type="text/javascript"></script>');
}
loadScript('http://ads.example.com/advertisements.js');
</script>
Но, как я уже сказал, это зависит от конкретного рекламного кода, который вы получаете. Из-за позиции document.write
будет записываться материал, который может не быть нужным вам местом. Могут потребоваться некоторые изменения.