Блог на Васил Тошков

Атрибутът async на JavaScript - преживявания

Вчера целия ден SEO блогът не се е отварял под Firefox. Причината е, че при преминаването ми към HTML5 направих всички скриптове в сайта да са асинхронни. Блогът просто литна като скорост, но се оказа, че скриптът ми за препращащи връзки, който не беше пипан от година и половина, не може да се "асинхронизира" и е чупил сайта. Чак днес сутринта го видях.

След всичко това осъзнах как работи атрибутът за асинхронизация async на JavaScript. Просто казано, трябва да се добавя само към скриптове, които могат да бъдат изпълнени след зареждането на сайта. Примерно броячи, инструменти за статистика... Бутонът за споделяне работи перфектно в асинхронен режим, защото връзката от кода му се превръща в бутон, като това може да стане и чак след зареждането на страницата. Ще изчакам малко и ще задам асинхронен код по подразбиране.

Защо не работеше Referring Links? Просто скриптът връщаше резултат с document.write() на точно определено място в кода на сайта, определено от потребителя. Ако това се изпълни след зареждането на сайта, просто всичко изчезва и се вижда само резултатът от скрипта. Преправих кода, като сега има един div, в който се изсипва резултатът от скрипта чак след зареждане на страницата. Новият код позволява работа в асинхронен режим. Старият също се поддържа и си работи по познатия начин.