Есть ли способ включить рекламируемое javascript объявление на странице, но разместить его в контенте? Основная цель заключается в том, чтобы запретить javascript-рекламу замедлять загрузку страницы, поэтому, если есть другие способы достижения этого, разделите.
Можно ли загружать объявление javascript последним на странице, чтобы предотвратить медленное время загрузки?
Ответ 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
будет записываться материал, который может не быть нужным вам местом. Могут потребоваться некоторые изменения.
Ответ 2
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
Вышеприведенный код - отличный способ добавить новое событие onload, которое не мешает вашему существующему javascript. Затем вы можете добавить новое событие загрузки для загрузки рекламы с помощью кода ниже.
addLoadEvent(function() { // call to loadScript() here });
Ответ 3
Я обычно помещаю тег для загрузки script непосредственно перед тегом body. Поэтому он загружается в конце страницы. Это не дает никаких ошибок проверки или вообще.