這個問題是Which browsers support <script async="async" />?的切線。如果將腳本動態添加到DOM,「異步」屬性/屬性是否有用?
我已經看到最近幾個腳本,做這樣的事情:
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'http://www.example.com/script.js';
document.getElementsByTagName('head')[0].appendChild(s);
這是添加腳本到DOM動態,常見的方式,也,IIRC由史蒂夫Souders的的書「Even Faster Web Sites」提示所有現代瀏覽器異步加載腳本(即不阻止頁面渲染或下載後續資產)。
如果我沒有錯,s.async = true
聲明有什麼用處?即使對於支持該屬性的瀏覽器,這是否也不是多餘的,因爲動態附加腳本應該已經觸發了異步下載?
有關最近瀏覽器版本的答案更新會很有趣。我目前使用's.setAttribute(「async」,「」);'。你知道這是否有效? – Gruber 2015-09-18 10:53:30
是否有一個徽章:「6年後回來接受一個始終正確的答案,同時導致新接受的答案自相矛盾,因爲它將接受的答案稱爲錯誤,當它成爲正確答案時回答自己?「 – Bungle 2017-04-08 06:50:59