Как избежать медленной загрузки из-за джаваскриптов

Добавлено 11.10.2007 | Технологии

Всякие рекламные системы, в частности, , МиксМаркет () и , предлагают вставлять свой код через джаваскрипт. Неприятно бывает, когда этот джаваскрипт по каким-либо причинам не грузится или грузится слишком медленно. Как с этим бороться — есть решение.

Как известно, если мы вставляем джаваскрипт, формирующий HTML-код, в тело страницы, то выполняться он будет тогда, когда браузер до него дойдет. И, соответственно, если джаваскрипт тормознет (или, например, тормознет его сервер), то юзеру на некоторое время будет показан только кусок документа, причем, возможно, изрядно перекособоченный. Это хорошо заметно тогда, когда джаваскрипт вызывается внутри контента или внутри таблиц. Поэтому решение элементарное: давайте не будем вызывать джаваскрипт внутри документа, а вызовем его только в самом конце!

Итак, внизу страницы, уже после всего контента и таблиц, делаем div (id="mmcontext"), можно невидимый (спрятать его в CSS/overflow:hidden или типа того). В нем вызываем джаваскрипт. А в том месте, куда мы хотим вставить сформированный джаваскриптом блок, вешаем пустой div (id="mmplace").

Теперь пишем простенький джаваскрипт:

<script type="text/javascript">

  1. Забираем в переменную div с сформированным кодом:
    mmcontextdiv=document.getElementById('mmcontext');
  2. Забираем в переменную div, расположенный где надо:
    mmplacediv=document.getElementById('mmplace');
  3. А в самый конец документа дописываем простенькую команду, которая перевесит сформированный джаваскриптом код куда надо:
    mmplacediv.appendChild(mmcontextdiv)

</script>

Код можно укоротить:

<script type="text/javascript">
document.getElementById('mmplace').appendChild(document.getElementById('mmcontext'));
</script>

В принципе, вместо div‘ов можно использовать любые теги, а вместо getElementById — другие способы адресации (getElementsByTagName и т. п.). Более того, этот способ, при должной сноровке, может помочь легко втыкать рекламные блоки практически в любое место на сайтах, где очень не хочется влезать в программный код движка.

по материалам ivanov.in

Спонсор: няни в киеве