2014-03-05 37 views
1

我有一個新的大約6個月前啓動的ASP.NET Web窗體項目。作爲這個項目還處於初級階段還處於初級階段,直到最近這個問題還沒有成爲一個問題。優化和組織ASP.NET內容

該應用程序是一個帶有C#和SQL Server後端以及HTML5和jQuery前端的ASP.NET Web窗體應用程序。該應用程序大多是ajax,後貼的數量很少。它主要由對C#WebMethods的jQuery ajax調用組成。

我遇到的問題是我的一些aspx頁面大小超過50kb,所有javascript和jQuery都在aspx頁面中。我想將很多這種javascript和jQuery代碼移動到單獨的文件中,但其中大部分都是使用aspx <%= %>標籤的代碼,這使得它變得很難(如果不是不可能的話)任務。

在代碼中查找事物變得乏味。我想知道是否有一種方法來優化代碼(通過某種方式減小aspx文件的大小),如果有一種好的方法來保持所有這些jQuery和JavaScript更好地組織,以便找到更容易的事情?另外,是否有可能縮小aspx頁面內的JavaScript的JavaScript縮小器?

任何幫助,將不勝感激!

回答

0

由於您使用的是AJAX,我假設您使用的是HTML標記,而不是任何Web控件。如果是這樣,你可以做的一件事就是在aspx頁面中關閉ViewState。幾年前我曾處於相同的位置,並決定切換Asp.net MVC。我會建議你看看。它以最小的開銷爲您提供了一個更好的開發模式。

此外,你是JS/CSS縮小?對於爲什麼「......」我仍然感到困惑,但其中大部分都是使用aspx代碼,這使得它變成一項困難(如果不是不可能的)任務。「

的WebForms,像MVC,現在還支持捆綁和JS文件minifications,檢查了這一點:http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

更新:作爲OP指出,對於.NET 3.5,你可以使用http://getcassette.net/用於捆綁和縮小。

+0

是的,我的外部CSS和JS已經過壓縮。但是,我無法找到一個可以縮小我的aspx頁面中的JS的縮小器。所有'<%= %>'標籤的原因是因爲我將有一個asp.net按鈕,然後我會有jquery代碼,例如:'$('#<%= btnOkay%>')。button() ;'。或者我可能需要得到一個下拉列表的值:'$('#<%= ddlStateName%>')。val();'。很多這樣的代碼。 – Icemanind

+0

你可以做的一件事是把所有的控制ID放在aspx頁面上:var ddlStateName ='#<%= ddlStateName%>';.然後在你的單獨的JS文件中引用它們:$(ddlStateName).val()。這不是最好的方法,但它有助於將JS移出ASPX頁面。 – harsimranb

+0

這是一個好主意,我真的想過這個。問題是,我覺得我會在外部JavaScript文件中包含一堆JavaScript函數(這很好),但我覺得如果我需要返回並稍後更改某些內容,那麼我必須搜索並搜索它需要改變的地方,如果這是有道理的。 – Icemanind

0

爲了避免在您的js中使用<%%>能夠引用您的控件,您可以將ClientIDMode設置爲「static」,這樣您爲控件設置的ID就是將要呈現的ID,並且以js你可以用一些參考控制像

asp.net

<asp:DropDownList ID="ddlStateName" runat="server" ClientIDMode="static"></DropdownList> 

jQuery的

$("#ddlStateName").val(); 
+0

這將是一個非常好的主意,除了我所理解的,靜態的ClientIdMode只能在.NET 4.0和更高版本中使用?我的項目使用.NET 3.5。 – Icemanind

+1

是的ClientIdMode只有4.0以上。 – harsimranb