在VS 2008中,我有一個擁有一個母版頁的ASP.NET內容頁面。我想爲這個頁面添加用於客戶端驗證等的JavaScript函數。我的問題是:我應該在哪裏放置我的JavaScript頁面或外部文件?
- 我應該在一個單獨的
.js
文件編寫這些腳本,也可以嵌入.aspx
文件中。 - 這個選擇會影響網站的性能嗎?
- 編寫JavaScript文件是否有任何規則?
在VS 2008中,我有一個擁有一個母版頁的ASP.NET內容頁面。我想爲這個頁面添加用於客戶端驗證等的JavaScript函數。我的問題是:我應該在哪裏放置我的JavaScript頁面或外部文件?
.js
文件編寫這些腳本,也可以嵌入.aspx
文件中。「查找和替換」這取決於你的使用。如果它的頁面特定功能,然後嘗試和實施它在頁面本身。如果它被許多頁面使用,然後把它放在一個js文件中。
是否影響 網站的性能?
是的,它可以。如果您有一個包含數千行代碼的js文件,並且在頁面中您只需要在js文件中調用一個函數。如果你爲這個文件引用這個文件,那麼在下載整個文件時應該會有一個帶寬浪費。對於這種情況,您可以在同一頁面內部編寫函數。
另一方面,瀏覽器可以緩存一個js文件。因此,對於後續請求,如果文件存在於緩存中,則不會再次下載。但在JavaScript本身寫入頁面的情況下,每次頁面加載時其所有內容都將被下載。
我會說,你應該創建javascripts函數到單獨的.js文件中並將它們連接到主頁面或需要的.ASPX內部。
想象一下,在每個.ASPX中「複製和粘貼」javascripts函數,然後當加載.ASPX文件時,渲染該頁面所需的時間會更長,因爲它需要渲染JavaScript函數。如果您將其保存在單獨的.js文件中,則瀏覽器將只下載一次,如果它較新或以前不存在。
您還可以緩存這些.js文件,以便瀏覽器不會每次都重新加載它。
的另一個優點是,當你需要做的.js文件的一些變化,你只需要集中修改的一個文件,而不是做一個經過無數.ASPX
如果JavaScript函數可能會在用戶訪問的多個頁面上使用,那麼您應該考慮緩存的強大功能。在這種情況下,您應該將它們放入(如果可能的話)一個外部.js文件。通過這個文件只會從服務器獲取一次,然後停留在瀏覽器緩存中。您的HTML頁面變小(對於較大的JS庫而言顯着)。
如果函數(通常是驗證規則)僅適用於單個頁面,則外部JavaScript文件會導致額外的HTTP請求,從而導致用戶頁面體驗的短暫阻塞。這裏最好將JS嵌入到HTML文件中。
有關更多詳細提示,請參閱Yahoo!'s tips。
乾杯,
$ 0.02基礎上發展,因爲這個答案被張貼。在頁面中放置一個函數只會節省帶寬,直到用戶請求頁面一定次數。之後,緩存會更好。此外,您需要付費才能在每次加載頁面時提供這些位。通過縮小,即使只使用文件中的部分代碼,外部可能也更有意義。通過最近的Chrome開發工具可以識別未使用的代碼和js模塊,您可以非常詳細地瞭解發送的內容。 – jinglesthula 2017-09-27 16:36:37