2012-10-09 31 views
1

它如何正確把所有的JavaScript代碼放在html文件的標籤中?什麼樣的JavaScript代碼應該留在HTML文件中?

將所有js代碼放在單獨的.js文件中是否更好?

我注意到許多網站(包括這個)都有一些js代碼寫在html文件本身(包含在腳本標籤中)。

讓我說我決定把所有可能的JavaScript代碼放在單獨的文件中。現在,這些外部文件是否可以訪問html文檔元素的元素。

我的意思是,讓我說我想創建一個新的<p>元素與文本每次用戶點擊一個按鈕。外部javascript文件是否可以訪問文檔元素以允許這樣做?

回答

5

如果您在HTML中引用.js文件,JavaScript將有權訪問頁面上的所有元素。這也適用於動態創建的元素。

在外部文件中儘可能多地使用JavaScript是一種很好的做法。在頁面本身中不應該有一個JavaScript代碼的原因。

+0

的主要原因在我的經驗,頁面有JS是服務器端的代碼,渲染它需要的功能中增加了腳本的頁面。我會同意你不應該一般手動代碼JS到一個頁面。 – Chris

2

任何引用的JS文件中的任何JS代碼都可以訪問你的html。

Javascript通常意味着被分離出一個單獨的文件,但無論出於什麼原因,有些人會反對這一點,而這並不是真正的世界末日。在外部.js文件中的javascript有

0

是「天經地義的事」,以保持整潔的代碼,一旦你在你的HTML參考外部文件,它實際上就變成等同於包含在HTML

0

的Javascript舉行的javascript在外部.js文件的行爲方式與JavaScript直接位於HTML中的方式完全相同。

.js文件中使用它的好處是這些文件通常由瀏覽器緩存,因此無需在每次加載頁面時都下載。這樣做的缺點是,如果您出於任何原因需要對文件進行更改,則需要重命名該文件以確保獲取最新的更改。

我通常只包含javacsript作爲頁面的一部分,如果我需要使用從「代碼隱藏」作爲ASP.NET項目的一部分傳遞的特定值。
例如var myJSVar = <%=_myCSVar%>;

0

我總是試圖將它保持在渲染時需要寫入的變量,並且或多或少是唯一的。像本地化(即使你開始使用服務也是這樣),其餘的可以(和鞋子)保存在外部文件中,並通過瀏覽器緩存

2

單獨.js文件將導致多個http請求,它會使你的頁面加載速度稍慢,但兩者都有自己的優點和缺點鏈接,例如有.js文件會導致緩存,從而使用戶重新訪問頁面時加快頁面加載速度,以及不必在每一頁上更改它你只是通過編輯一個文件來使用它,另一方面它的缺點是如果文件被緩存,並且如果你有時候改變不會影響瀏覽器的緩存.js所以有些人會重命名他們的javascript,如abcv1。 js,abcv2.js等等,使用內聯腳本可以減少你的http請求,它也不會被瀏覽器緩存,所以無論何時你改變它,它都會在你的網頁上影響到所有訪問者,因爲沒有腳本的問題緩存..

如果你願意,你可以綁定所有腳本在一個單一的文件,以減少你http請求

1

大家是正確的上述外部.js文件。有一點需要記住的是,.js文件被內嵌代碼所沒有的瀏覽器緩存。這具有許多優點,因爲每次用戶訪問您的頁面時瀏覽器都不需要請求JavaScript,因此連接發送的數據較少,並且第二次加載頁面的速度會更快。還降低了您的帶寬使用量。

您可以將此更快太受minifying您的JS文件

相關問題