2009-12-30 98 views
1

在html文檔中聲明Javascript時。我們有3種方式來做到這一點javascript基本問題

  1. 腳本部分去頭標記
  2. 腳本部分進入體內標籤
  3. JavaScript是從外部文件

其中哪一個參考在性能方面考慮更快更高效?

感謝

回答

2

1和2是關於標籤位置。 3可同時適用於1和2

此外,你可以在事件處理程序的JavaScript屬性,就像這樣:

<button onclick="alert(1)">pressme</button> 

最糟糕的是,你還可以有JavaScript作爲URL,在例如鏈接:

<a href="javascript: alert(1)">click me</a> 

只是堅持你的例子:首先,它通常是使用你在標籤一個src組件加載外部腳本文件是個好主意。這允許瀏覽器緩存腳本,這使得頁面在初始頁面加載後加載速度更快。這是尤其如此,如果你使用像jQuery的東西,並從公共Conent交付網絡(如谷歌AJAX API看到:http://code.google.com/apis/ajaxlibs/documentation/

加載它們的位置(頭或身體):在過去的日子裏,人們用說,把你的腳本放在腦海中,以確保一旦身體被加載並且用戶可以使用所有的交互元素,它們就被加載。但問題在於,加載這些腳本將阻止加載頁面的視覺部分 - body。基本上,用戶正在看一個空白頁面,想知道他們的頁面需要很長時間才能呈現。 因此,現在流行的觀點是儘可能將所有腳本放在身體中,並確保以可處理部分加載腳本的方式編寫JavaScript。 YSlow指南是瞭解這些事情的好資源。見: http://developer.yahoo.com/yslow/help/

0

如果你是超級關心性能,我想說加載HTML中的JS是最快的。因此,從用戶的角度來看,負載中的項目,因此,他們可能會認爲下載需要更長的時間,因爲頁面在加載之後纔會開始渲染,但數據量應該相同。外部js文件可能是最慢的,因爲它需要單獨的http請求。

+0

「外部js文件可能是最慢的,因爲它需要一個單獨的HTTP請求」 - 這只是單頁的情況是真實的。如果是涉及加載某些頁面的情況,則可能會非常快速地將JS放入HTML文件中。 – 2009-12-30 18:53:24

1

我想說這取決於具體情況。

  • 如果跨站點使用大型腳本並希望利用客戶端緩存機制,則外部文件是個不錯的主意。

  • 如果一個腳本只在一個頁面上使用,那麼將它保留在頭部/主體中可能是有意義的。很顯然,腳本越早進入頁面,越早執行JavaScript,但是您可能會受到等待DOM可用於腳本的限制,在這種情況下,如果它處於頭部,它將不會產生任何影響或身體。

  • 您可以將腳本立即放在任何定義它需要訪問的DOM的HTML之後。這可能是獲取腳本在頁面中執行的最快方式,但如果它大或在許多地方使用,則不要通過外部加載(並緩存)的文件進行。

0

簡短的答案是......呃......這取決於。

如果

速度更快,效率相對於性能被認爲

你的意思是「加載速度更快」,在頭上,然後內嵌腳本會得到你的代碼到瀏覽器更快第一它的時間被加載。外部文件可以被緩存,所以如果你在多個頁面中包含相同的腳本,一旦你克服了第一次加載它的開銷,那麼你將它駐留在內存中。

2

這實際上取決於您正在編寫的JavaScript類型。如果你編寫需要在主體中執行的代碼(例如:document.write()),你將不得不在body標籤中寫入代碼。如果情況並非如此,並且您正在編寫javascript函數,則應該放在head標籤或其他文件中。如果要在多個頁面上使用相同的功能,您可以使用不同的文件。

w.r.t性能,它再次取決於你在做什麼。如果您只有一個使用JavaScript的頁面,將其保留在標題中會更快。這樣你會減少往返以獲得JavaScript文件。

如果您有使用同一功能的多個頁面,那麼它將如果功能是在不同的文件,因爲它們會被下載一次,並多次使用會更快。