2010-03-30 84 views
10

我在http://royronalds.com上構建了我的網站,我試圖找出<head>中元素的順序最有意義。只是從我目前有需要,我有:如何訂購<script>標籤與<style>在HTML標記中的標籤爲獲得最佳效果

  • <head>
  • <style>外部樣式表
  • <meta>
  • <title>
  • <link>到的favicon
  • <script> jQuery的
  • <script>主JavaScript的網站
  • <script>谷歌分析,異步腳本。
  • </head>

是否有原因使加載時間等問題發生更順利以不同的方式訂購這些,如果是這樣,將在理想的順序是什麼?

回答

6

現代瀏覽器等待任何形式的呈現,直到檢索到整個<head>部分(包括鏈接在其中的文件)。因此,訂單的性能無關緊要。對於Javascript,文件的順序是執行順序。對於樣式表,順序確定優先順序(如果所有其他條件相同,則最後定義的規則優先)。

如果您想優化客戶端性能,強烈建議將您的Javascript包括到the very end of the <body> element,而不是將它們放入<head>。有更多的考慮,Yahoo's list of optimisations是非常值得你的時間通讀。 Google has some good advice

+1

異步腳本的執行順序不一定是它們在頁面上顯示的順序。將異步腳本放在底部也不一定是明智的。在許多頁面上,將異步腳本放在頂端附近可以降低總頁面加載時間,而不會由於並行性增加而阻塞內容。 – Brian 2010-04-01 14:43:22

6

一件可以產生巨大影響的事情是將<script>標籤移動到頁面底部,如果它們不是內容所必需的。

例如,我會將google analytics <script>標記移動到每個頁面上</body>標記之前的最後一個。腳本標記是「阻止內容」,因此瀏覽器將不會繼續進行頁面呈現,直到腳本被下載並執行。您的主要JavaScript和JQuery文件可能無法輕鬆移動,具體取決於您如何使用它們,但分析肯定可能位於底部。

查看YSlow best practices瞭解更多優化技巧。

+1

異步腳本標記(如Google Analytics異步跟蹤代碼段)不會像普通腳本那樣阻止內容。請參閱: http://www.stevesouders.com/blog/2010/03/03/p3pc-google-analytics/ – Brian 2010-04-01 14:16:41

+0

有趣。這是GA代碼的一個相對較新的變化。我沒有意識到這一點,謝謝你的鏈接。大多數網站可能仍然使用它的聲音中的舊非異步腳本。 – zombat 2010-04-01 16:34:34

+0

大多數網站都會這樣做,您的評論絕對適用於非異步GA片段。我只想指出,這個問題是關於異步GA的問題。 – Brian 2010-04-01 20:27:34

0

另外考慮一個事實,即瀏覽器在發生錯誤時會停止javascript執行。

正因爲如此,你在別的你可能你的分析代碼不執行,並捕獲統計所有的瀏覽器的JavaScript工作...

我通常把上面我自己的代碼我的谷歌Analytics(分析),因此運行時,它是非常重要的首先,如果在極少數情況下,我的代碼中斷或導致JS錯誤,我仍然能夠獲得跟蹤信息。

我的命令是:

<head> 
<meta> content encoding 
<title> 
<link> favicon 
<style> external/third-party stylesheet 
<style> site stylesheet 
</head> 
<body> 
... 
<script> google analytics 
<script> jQuery 
<script> jQuery plugins 
<script> site javascript 
</body> 
+1

瀏覽器僅停止發生錯誤的腳本標記的腳本執行。他們將繼續在其他腳本中執行代碼。在GA腳本之上有一個破損的腳本不會停止跟蹤發送的信標。 – Brian 2010-04-01 14:39:27

1

的方式,儘量反垃圾郵件您的電子郵件地址...

即:

<SCRIPT TYPE="text/javascript"> 
document.write('<A HREF=' + '"mai' + 'lto:' + '[email protected]' + 'example' + '.fr' + '?' + 'sub' + 'ject=music'+'example'+'text">' + 'example' +'@' + 'example' +'.' + 'fr' + '</A><BR>') 
</SCRIPT> 

它爲我的作品...

+0

是的,我會試着想一些東西(最好是更容易訪問的東西)。 – Kzqai 2010-05-11 15:53:44