2010-04-01 36 views
1

我剛剛開始使用ASP.NET MVC。我將在我正在使用的網站上使用JQuery,但我並不確定一件事:JQuery代碼的放置位置?在ASP.NET MVC站點中,JQuery代碼將在哪裏?

這涉及兩件事情:

  • 我在哪裏導入JQuery的JavaScript文件? (我一直在想母版頁是一個很好的地方,我是對的,還是必須在每個視圖中導入它?)
  • 應該從Master頁面引用我的所有JQuery代碼(即,我將我的代碼存儲在單獨的.js文件中,並在<script>標記中引用它)?

在此先感謝。

回答

2

您將在每個頁面中使用的任何內容都將導入到您的主頁中。如果它只能在較小規模上使用,則將導入放入將使用它的視圖中。

關鍵是在不使用時不加載不必要的字節。我有一個通用的js文件,其中包含任何將用作主控器中導入的所有板的更常用功能的任何東西。然後在逐頁的基礎上,我只有那個頁面需要的js導入。

如果你把每個js導入到你的主文件中,這意味着它會在每個頁面上加載這個js,當其中一半甚至沒有被用於該特定頁面時。這可能會對頁面加載時間產生重大影響。

我建議還使用一些可以將js壓縮爲縮小版以進行生產的東西。 Telerik has their Script Registrar,它也是一個非常好的工具。

+0

所以,主要有:進口的JQuery在母版頁(假設它使用了很多),進口特定文件視圖中的視圖。謝謝! – 2010-04-01 19:29:30

+0

嘿,快速的問題:如果我使用jQuery的Visual Studio文檔,我可以把它放在Master Page中嗎? – 2010-04-01 19:34:45

+0

智能感知? – Gabe 2010-04-01 19:41:53

1

我的jquery代碼被放置在masterpage的頭部,因爲它用在網站上的幾乎所有視圖上。你不這樣做的唯一原因是,如果你只在少數視圖上使用jQuery庫,那麼沒有理由爲每個用戶加載它。

2

將JQuery添加到Site.Master的底部,就是body標籤。這意味着頁面將加載,而不是等待Javascript。

但是JQuery與每個視圖相關,但添加在視圖級別。

+0

+1,並進一步支持:http:// elegantcode。com/2010/03/30/your-javascript-goes-where/ – mxmissile 2010-04-01 15:19:56

+0

我不同意這一點,我不會將DV作爲這個更主觀的參數,但JavaScript應該先去。如果您最後一次加載JavaScript,則您的網站可能無法正常運行,或者用戶將執行某些操作並獲得意外結果,因爲JavaScript尚未加載以處理操作。這也意味着任何頁面特定的JavaScript必須比圖書館更進一步的原因,否則你會得到不存在的錯誤。 ASP.NET腳本管理器將JavaScript放在它所屬頁面的頂部。 – 2010-04-01 15:24:21

+0

包裝你的JQuery下面的代碼。在頁面準備就緒之前,不會執行JQuery。 $(document).ready(function(){...} – Simmo 2010-04-01 15:31:00

2
  • 您應該在母版頁上導入您的JQuery庫。可能你會在大部分視圖中使用JQuery,所以只有一個地方的參考是最受歡迎的。
  • 通常,將所有JavaScript代碼放在單獨的文件中是一種很好的做法,因爲內聯JavaScript越少越好。 2個原因:由於外部JavaScript文件被緩存,所以代碼更易讀,性能更好。