2012-02-29 40 views
3

如果有人問這個問題,我表示歉意,但我無法在任何地方找到問題。將jquery添加到asp.net的最佳實踐是什麼?

我想在我的asp.net頁面上使用jquery,但是我應該只註冊一個新腳本嗎?添加鏈接?有什麼特別的參考可以添加嗎?

scottgu states它集成到visual studio中,但沒有描述如何開始將其添加到頁面?

+0

你。應該有它自動如果你使用MVC。我個人只是將其添加到我的webform項目下的腳本文件夾,然後從那裏拖到我的主頁'標題',所以它是在我的所有頁面。 – 2012-02-29 18:58:07

+0

我沒有使用MVC – McKay 2012-02-29 18:58:36

+0

@WilliamDwyer但MVC如何完成添加它utomagically? MVC這樣做的方式可能是一種最佳做法? – McKay 2012-02-29 19:02:47

回答

1

我不認爲是專家,但根據我最近的研究,這樣的事情是最好的?

 this.Page.ClientScript.RegisterClientScriptInclude("jQuery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"); 

the documentation狀態

「電話IsClientScriptIncludeRegistered方法來確定客戶端腳本是否包含與給定的鍵和類型對已註冊並避免不必要地嘗試添加腳本。」它也提到「檢查的好處是減少不必要的計算。「所以,也許這樣的事情是更好:

if (!this.Page.ClientScript.IsClientScriptIncludeRegistered("jQuery")) 
    { 
     this.Page.ClientScript.RegisterClientScriptInclude("jQuery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"); 
    } 

這似乎是愚蠢的,雖然,因爲如果我叫

 this.Page.ClientScript.RegisterClientScriptInclude("jQuery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"); 
     this.Page.ClientScript.RegisterClientScriptInclude("jQuery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"); 

它做同樣的事情,如果我只是做了一次

+0

這是一個簡單而安全的方式來添加它。這裏可能存在的問題是,如果你在jQuery之前註冊了需要jQuery的腳本,並且你註冊了兩次不同名稱的jQuery。我在這裏說的是,你沒有解決所有情況,這只是一種方式。例如,Stackoverflow將jQuery放置在頂層和獨立的位置,其他站點將包括jQuery在內的所有javascript都放在一個文件中...是你做了什麼......你能做什麼,你要做什麼決定等等...... – Aristos 2012-03-01 11:12:48

+0

什麼我決定做的是把它包裝在一個方法中,可以從任何地方調用我想要的jQuery:'ScriptRegistration.RegisterJQuery()'想法? – McKay 2012-03-01 15:31:54

1

您可以通過鏈接腳本將jQuery添加到asp.net,只需將它們鏈接到您的其他腳本和樣式表即可。 [除非我錯過了某些東西]

1

我相信最好的方法是從CDNs引用jQuery文件。

與您在需求中手動添加腳本標記和在代碼後面註冊代碼的區別。如果您構建了一些使用jQuery的自定義控件,最好確保腳本引用將出現在頁面中,因此您需要從代碼後面註冊。

如果有一個母版頁和一些JavaScript在整個頁面上使用jQuery,然後將它添加到該母版頁中。

如果腳本僅用於少量頁面,則不需要在其他100頁面中加載腳本,因此您只需將標籤添加到這兩個或三個頁面即可。

3

我不能叫他們最好的做法,但一些注意事項:

添加一個鏈接是第一個認爲你可以做,如果你把它註冊爲新的腳本添加額外的代碼來與走出原因而運行。

凡頁: jQuery是一個核心庫,以便加載頁面的頂部VS我們留下其他的JavaScript函數加載和DOM準備就緒後,使用它們的頁面的底部。

什麼版本添加和從哪裏?你可以添加jQuery的縮小版本,你可以從你的站點ether加載它,ether從谷歌加載它。這也取決於你是否只保存jQuery或者將它與其他腳本一起添加到一個公共文件中。

查找內容:如果您有其他庫任何衝突,你可以使用jQuery的noConflict http://api.jquery.com/jQuery.noConflict/

優化所有腳本:如果你有一個以上的腳本加載,一個優化是將它們放在一起放到單個文件中,縮小,gzip,並將其添加爲鏈接到您的頁面。這是我遵循之前的所有步驟後所做的。

+0

雖然我很欣賞所有這些信息,但並沒有說明如何實際添加它?我應該註冊一個腳本嗎?添加一個原始的html腳本標籤?添加某種Web javascript參考hocus pokus? – McKay 2012-02-29 20:29:15

+0

@McKay我說,添加一個原始的html腳本標記。 (不註冊爲腳本) – Aristos 2012-02-29 20:45:11

+0

我看到的缺點是,如果網頁上的多個控件添加該腳本標記... – McKay 2012-02-29 20:53:47