2012-12-12 27 views
4

我有一個大多數基本的HTML網頁。有一個部分,我使用從外部源(url)提取的JavaScript加載RSS源。問題是我的頁面會加載所有東西,直到該腳本,等待腳本加載(有時最多幾秒鐘),然後加載頁面的其餘部分。如何讓腳本在網頁上最後加載?

如何強制它在第一次渲染整個頁面後加載腳本?

我的代碼是這樣的:

<html> 
<more html> 
<script language="JavaScript" src="http://..." type="text/javascript"></script> 
<more html> 
... 
+0

將腳本放在底部,或使用異步加載。 – adeneo

+0

@Cthulhu我敢肯定它恰恰相反。瀏覽器從上到下解析,並等待腳本加載。否則,在使用它的庫運行之後,您還希望緊接着的代碼如何?瀏覽器不會等待圖像的URL解析和加載,雖然 – Ian

+1

@Cthulhu,它們按順序加載並阻止頁面的其餘部分。如果他們不需要另一個庫的必需庫可能會導致問題。例如,一個小的jQuery插件會在jQuery之前加載。 – gpojd

回答

6

兩個選項:

  1. 把你的腳本塊在頁面的末端。無論如何,這是一個很好的做法,因爲您的頁面結構將在用於處理它的腳本之前加載。因爲用戶通常會注意到頁面加載而不是腳本,所以整體上會出現更快的加載。
  2. 在開頭script標記中包含defer屬性。請注意,defer只能用於外部腳本文件(具有src屬性的文件)。見https://developer.mozilla.org/en-US/docs/HTML/Element/script
+0

1.我在我的頁面的某個部分有它,因爲我希望它在那裏顯示。如果我把它放在最底部,它將不在正確的位置。 2.「延遲」和「異步」均無法加載腳本。整個頁面都被渲染,但沒有顯示RSS提要。 – wahle509

+0

你的腳本是從外部引用的嗎? –

+0

是的,我有「src」拉動RSS源的URL位置。 – wahle509

1

將您的腳本標記移到最後,它會在其他所有內容之後加載。例如:

<html> 
    <more html> 
    <more html> 
    <script language="JavaScript" src="http://..." type="text/javascript"></script> 
</html 
1

在頁面加載後製作腳本的一種非常可靠的方法是將腳本寫出來包含在JavaScript中。

var theScript = document.createElement("script"); 
theScript.setAttribute("type","text/javascript"); 
theScript.setAttribute("src","//www.mysite.com/script.js"); 
document.getElementsByTagName("head")[0].appendChild(theScript);