簡體   English   中英

我是否應該始終使用動態腳本標記注入技術來包含javascript文件,類似於Facebook?

[英]Should I always use dynamic script tag injection technique for including javascript files, similar to Facebook?

不像往常一樣只在頁面上包含<script src="...">標記,facebook建議按以下方式加載其SDK庫:

<div id="fb-root"></div>
<script>
  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

說,那:

放置異步版本代碼的最佳位置就在打開<body>標記之后。 這允許Facebook初始化與頁面其余部分的初始化同時發生。

如果它那么棒那么也許我應該總是在我的所有項目中使用這個方法來包含任何外部javascript? 什么時候使用這種技術是合適的,反對它的原因是什么?

每個腳本標記強制瀏覽器停止加載,直到腳本塊完全加載並執行。 通過動態添加腳本標記,頁面可以完全加載而不會阻塞。 有關更多信息,請查看加載Javascript而不阻止和/或加載腳本而不阻止

異步加載腳本聽起來不錯,但是你需要在內聯<script>標簽中進行嗎?

怎么樣加載它,而處理onload頁面?

function init() {
    (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.body.appendChild(e);
    }());
}

window.addEventListener("load", init, false);

也許Facebook的方式確保所有支持腳本的瀏覽器處理腳本,但是你幾乎可以確保那些相同的瀏覽器使用一個漂亮的addEventListener / attachEvent抽象函數來處理腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM