2012-05-31 20 views
0

我的網站上有一些頁面加載了大量的javascript文件。在下面的代碼中,edit_onload()在script1.js中。通常,所有腳本加載正常,edit_onload成功觸發。有時它似乎像script1.js不加載的時間,因爲edit_onload()錯誤與對象的預期。如果你刷新頁面,一切都會正常加載。某些.js頁面沒有及時加載

我的問題是,下面的標籤不應該等待所有的.js文件加載,然後執行edit_onload()?

<script LANGUAGE="javascript" DEFER="true" for="window" event="onload"> 
       <xsl:comment> 
        <![CDATA[ 

        edit_onload(); 

       ]]> 
       </xsl:comment> 
      </script> 
      <script language="javascript" src="/_scripts/script1.js" defer="true"></script> 
      <script language="javascript" src="/_scripts/script2.js" defer="true"></script> 
      <script language="javascript" src="/_scripts/script3.js" defer="true"></script> 
+0

您應該使用'type =「text/javascript」'而不是'language =「javascript」' – PitaJ

+0

我不認爲這是問題所在。它只是一個參考,它並沒有實際做任何事情,直到一個事件開始。即使這樣做,頁面也會暫停等待加載。我在猜測格式不正確的數據。 – Limey

+0

你能更詳細地瞭解格式錯誤的數據理念Limey嗎? – tk01

回答

0

我認爲,延遲腳本的處理實現是瀏覽器特定的。例如,他們可以處理不同隊列中的內聯腳本和外部腳本。通常,「推遲」屬性只是網站開發者爲用戶代理提供的建議,但用戶代理不一定會遵守該建議。

另外你應該嘗試使用'defer =「defer」'。你可以將呼叫移到script1.js本身嗎?您還可以定期檢查是否存在移動到正在加載的內容末尾的特定元素,並且只有在元素被發現後才運行該方法。

順便說一句,如果您使用dynamic script loading隱喻(鏈接只是其中一個示例),您可能會獲得對腳本加載的更多控制權。

相關問題