2010-07-15 61 views
2

我曾經認爲你不應該插入JavaScript塊JavaScript中的<body>

<script language="javascript"> 
<!-- 
//--> 
</script> 

成(什麼,HTML,XHTML?)文件的主體部分,而是到了頭。

但這仍然是真的嗎?

+0

它在兩個地方都有效。 – Fosco 2010-07-15 19:48:11

回答

1

正文中的腳本(而不是外部文件的鏈接)就像將CSS放在首位 - 人們將它們分離開來,以便它們可以將標記和邏輯分開以便清晰和易於維護。

我是Jquery文檔準備功能的忠實粉絲......但這只是個人偏好。 dom加載程序確實是確保加載在不同瀏覽器之間相同的唯一方法。謝謝,微軟!

我說使用常識...這是不值得做一行代碼的另一個文件...甚至兩個。如果我們都走到最佳實踐有時要求我們去的極端,我們都會是瘋了......或者至少比現在更堅果。

+0

如果在? 中使用$(document).ready(function()會發生什麼?注意:我並不關心將腳本內聯或將其外包給外部文件,而是關於何時啓動它。 原因很簡單:有時候你想使用在腳本中創建頁面的過程中渲染的值,比如像http://hivelogic.com/enkoder這樣的電子郵件編碼器。然後可能很難把它全部放到,因爲輸出可能已經開始了 – Urs 2010-07-15 22:16:15

+0

在我看來,這些都是客戶端的好候選,預處理類型函數要麼通過loader(最好)或獨立(大多數時間工作) 我幾乎總是在裏面準備好文檔我的身體標籤,因爲我的頁眉和頁腳是在瀏覽器到達我的代碼之前動態生成的。在我的具體情況下,我使用這個驗證:http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/我懷疑你可以輕鬆地開火像enkoder使用getElementById onsubmit()中的值。 – bpeterson76 2010-07-15 22:38:05

1

但是,這仍然是真的嗎?

這是一個很好的/最佳實踐的問題。 HTML和Javascript應該是分開的。這甚至知道作爲不顯眼 JavaScript /代碼。

在維基百科更多信息:

Unobtrusive JavaScript

雖然這是一個很好的做法,但你仍然可以把JavaScript的頁面的任何部分,但是你應該避免這種儘可能。

一些人主張的JavaScript應該只在頁面的結尾,例如他們似乎說是在SEO(搜索引擎優化),以及性能方面更好通過@大衛所表示Dorward在他的評論中。

+1

這通常是爲了表現的原因,而不是SEO。腳本元素是阻塞的,如果它們在頭部並且花費了大量時間下載它們,那麼訪問者正坐在一張空白頁面上看一會兒。 – Quentin 2010-07-15 19:53:13

+0

@David Dorward:好點,並同意,這是合乎邏輯的,應該加上回答謝謝 – Sarfraz 2010-07-15 19:56:27

1

但是,這仍然是真的嗎?

我不確定它曾經是。你在想關於<style>的CSS元素嗎?因爲那些在身體上是非法的。

但是,將Javascript代碼放入頭部或單獨的腳本通常是更好的選擇,並將其包裝在document.readyonload事件中。

但是,體內Javascript可以取代它的位置,例如,將外部JavaScript文件嵌入到文檔中時。頂尖的現代和前衛的Google Analytics依靠<script>細分被插入正文的最後。

+0

可能是'