導航:首頁 > 網站優化 > 如何優化aspnet網站

如何優化aspnet網站

發布時間:2020-11-20 03:46:34

1、用c#net做的,速度優化後的網站,該怎麼解決

大部分不用優化性能已經很優秀了,畢竟不是腳本語言能比的性能。
大公司要優化不花月薪三到十萬請架構師,到這里發帖?
給 5000rmb 可以考慮下

2、ASP.NET網站性能優化 需要考慮哪些方面

比如 1 資料庫,數據量大,比如建立索引等等,優化資料庫
2 有圖片的頁面,把圖片壓縮
3 盡量少用伺服器控制項,伺服器控制項要編譯成html控制項,導致速度不如純html控制項
4 代碼,減少冗餘的代碼,減少重復性的代碼,包括查詢數據語句等等,可使用存儲過程
5 分布式部署等等
還有很多,包括伺服器的好壞呀等等

3、asp.net有些網站有後台seo優化功能,那是怎麼實現的?需要對每個頁面都修改關鍵字等等嗎?

那個是要在開發的時候就考慮進去的,要實現相應的功能必須要有相關的程序支持。比如有中國博客網就支持這個功能,每篇文章都可以重定義標題、關鍵詞。描述等seo設置

4、如何做ASP.NET網站的SEO優化提高推廣力度?

你是需要推廣關鍵詞排名嗎?我們找一款軟體來推廣我們公司網站的,

做百度競價的費用投資成本大,很多人都是用SEO軟體優化上首頁的,

我在網上找了幾款軟體,對比了一下,覺得有款叫旺道的優化軟體效果不錯的,

經過幾天深思熟慮,詳細了解了一下旺道軟體的功能後,購買他們一款軟體

開通了他們的SEO排名功能,他們安排了技術教我怎麼操作,經過了一個月的時間

網站關鍵詞都排名第一頁,而且很穩定的。你可以詳細的了解下,或許可以對你有益。

5、asp.net網站源代碼怎麼優化

1.盡量的精簡代碼,刪除無用的代碼和樣式,特別是首頁代碼不能太多,否則影響載入速度,對搜索引擎而言是極不友好的;
2.代碼中盡量不要使用flash、js,禁止使用框架;
3.網頁地址盡量靜態化,少使用動態化網址。
代碼可以優化的地方基本上就是這些,其它SEO方面需要SEO的專員去做。

6、asp.net wepapi發布到iis上,當訪問量大時請求變得很慢很卡,有什麼好的解決辦法?

應該是你添加網站時候不對右擊左邊的網站,添加網站,填入網站名稱(隨便填)專,應用程序池要設置一下屬(可以試試ASP.NETv4.0),設置好物理路徑,埠要改一下(比如8001),最後確定訪問直接在瀏覽器上輸Contact

7、哪些方面可以對asp.net進行性能優化

1、使用值類型的ToString方法
在連接字元串時,經常使用"+"號直接將數字添加到字元串中。這種方法雖然簡單,也可以得到正確結果,但是由於涉及到不同的數據類型,數字需要通過裝箱操作轉化為引用類型才可以添加到字元串中。但是裝箱操作對性能影響較大,因為在進行這類處理時,將在託管堆中分配一個新的對象,原有的值復制到新創建的對象中。
使用值類型的ToString方法可以避免裝箱操作,從而提高應用程序性能。
int num=1;
string str="go"+num.ToString();

2、運用StringBuilder類
String類對象是不可改變的,對於String對象的重新賦值在本質上是重新創建了一個String對象並將新值賦予該對象,其方法ToString對性能的提高並非很顯著。
在處理字元串時,最好使用StringBuilder類,其.NET 命名空間是System.Text。該類並非創建新的對象,而是通過Append,Remove,Insert等方法直接對字元串進行操作,通過ToString方法返回操作結果。
其定義及操作語句如下所示:
int num;
System.Text.StringBuilder str = new System.Text.StringBuilder(); //創建字元串
str.Append(num.ToString()); //添加數值num
Response.Write(str.ToString); //顯示操作結果

3、使用 HttpServerUtility.Transfer 方法在同一應用程序的頁面間重定向
採用 Server.Transfer 語法,在頁面中使用該方法可避免不必要的客戶端重定向(Response.Redirect)。
4、避免使用ArrayList。
因為任何對象添加到ArrayList都要封箱為System.Object類型,從ArrayList取出數據時,要拆箱回實際的類型。建議使用自定義的集合類型代替ArrayList。asp.net 2.0提供了一個新的類型,叫泛型,這是一個強類型,使用泛型集合就可以避免了封箱和拆箱的發生,提高了性能。
5、使用HashTale代替其他字典集合類型
(如StringDictionary,NameValueCollection,HybridCollection),存放少量數據的時候可以使用HashTable.
6、為字元串容器聲明常量,不要直接把字元封裝在雙引號" "裡面。
//避免
MyObject obj = new MyObject();
obj.Status = "ACTIVE";
//推薦
const string C_STATUS = "ACTIVE";
MyObject obj = new MyObject();
obj.Status = C_STATUS;
7、不要用ToUpper(),ToLower()轉換字元串進行比較,用String.Compare代替,它可以忽略大小寫進行比較.
例:
const string C_VALUE = "COMPARE";
if (String.Compare(sVariable, C_VALUE, true) == 0)
{
Console.Write( "相同");
}
也可以用str == String.Empty或者str.Length == 0判斷是否為空。(注意判斷輸入數據的長度,可防止sql注入式攻擊)
將String對象的Length屬性與0比較是最快的方法,避免不必要的調用 ToUpper 或 ToLower 方法。
8、類型轉化Int32.TryParse()優於Int32.Parse()優於Convert.ToInt32()。
建議.NET1.1下用Int32.Parse();.NET2.0用Int32.TryParse()。
因為:
Convert.ToInt32 會把最終的解析工作代理給 Int32.Parse;
Int32.Parse 會把最終的解析工作代理給Number.ParseInt32;
Int32.TryParse 會把最終的解析工作代理給Number.TryParseInt32。
9、如果只是從XML對象讀取數據,用只讀的XPathDocument代替XMLDocument,可以提高性能
//避免
XmlDocument xmld = new XmlDocument();
xmld.LoadXml(sXML);
txtName.Text = xmld.SelectSingleNode( "/packet/child").InnerText;
//推薦
XPathDocument xmldContext = new XPathDocument(new StringReader(oContext.Value));
XPathNavigator xnav = xmldContext.CreateNavigator();
XPathNodeIterator xpNodeIter = xnav.Select( "packet/child");
iCount = xpNodeIter.Count;
xpNodeIter = xnav.SelectDescendants(XPathNodeType.Element, false);
while(xpNodeIter.MoveNext())
{
sCurrValues += xpNodeIter.Current.Value+ ",";
}

8、ASP.NET如何進行性能優化問題

一、SqlDataRead和Dataset的選擇

Sqldataread優點:讀取數據非常快。如果對返回的數據不需做大量處理的情況下,建議使用SqlDataReader,其性能要比datset好很多。缺點:直到數據讀完才可close掉於資料庫的連接

(SqlDataReader 讀數據是快速向前的。SqlDataReader 類提供了一種讀取從 SQL Server 資料庫檢索的只進數據流的方法。它使用 SQL Server 的本機網路數據傳輸格式從資料庫連接直接讀取數據。DataReader需及時顯式的close。可及時的釋放對數據的連接。)

Dataset是把數據讀出,緩存在內存中。缺點:對內存的佔用較高。如果對返回的數據需做大量的處理用Dataset比較好些可以減少對資料庫的連接操作。優點:只需連接一次就可close於資料庫的連接

*一般情況下,讀取大量數據,對返回數據不做大量處理用SqlDataReader.對返回數據大量處理用datset比較合適.對SqlDataReader和Dataset的選擇取決於程序功能的實現。

二、ExecuteNonQuery和ExecuteScalar

對數據的更新不需要返回結果集,建議使用ExecuteNonQuery。由於不返回結果集可省掉網路數據傳輸。它僅僅返回受影響的行數。如果只需更新數據用ExecuteNonQuery性能的開銷比較小。

ExecuteScalar它只返回結果集中第一行的第一列。使用 ExecuteScalar 方法從資料庫中檢索單個值(例如id號)。與使用 ExecuteReader 方法, 返回的數據執行生成單個值所需的操作相比,此操作需要的代碼較少。

*只需更新數據用ExecuteNonQuery.單個值的查詢使用ExecuteScalar數據綁定的選擇

三、數據的綁定DataBinder

一般的綁定方法用DataBinder.eval 綁定不必關心數據來源(Dataread或dataset)。不必關心數據的類型eval會把這個數據對象轉換為一個字元串。在底層綁定做了很多工作,使用了反射性能。正因為使用方便了,但卻影響了數據性能。來看下。當於dataset綁定時,DataItem其實式一個DataRowView(如果綁定的是一個數據讀取器(dataread)它就是一個IdataRecord。)因此直接轉換成DataRowView的話,將會給性能帶來很大提升。

*對數據的綁定建議使用。數據量大的時候可提高幾百倍的速度。使用時注意2方面:1.需在頁面添加.2.注意欄位名的大小寫(要特別注意)。如果和查詢的不一致,在某些情況下會導致比還要慢。如果想進一步提高速度,可採用的方法。不過其可讀性不高。

以上的是vb.net的寫法。在c#中:<@% ((DataRowView)Container.DataItem)["欄位名"] %>

對查看頁面每個執行過程狀態最簡單的辦法:其頁面的trace屬性為true就可查看細節。

一、使用存儲過程:

1、性能方面:存儲過程提供了許多標准sql語言中所沒有的高級特性。其傳遞參數和執行邏輯表達式的功能,有助於應用程序設計者處理復雜任務。另外,存儲過程存儲在本地伺服器上,減少了執行該過程所需的網路傳輸寬頻和執行時間。(存儲過程已經對sql語句進行了預編譯,所以其執行速度比在程序里執行sql語句快很多)

2、程序結構方面:從程序的可擴展性看,使用存儲過程會對程序以後的修改帶來方便。比如資料庫的結構改變了,只需修改相對應的存儲結構,和程序中的調用部分即可。這部分不屬於本文探討范圍,屬於程序結構設計方面。所以不在此展開。

3、程序安全性:使用存儲過程可避免SQL Injection攻擊。

二、查詢語句的優化(針對sql server2000)

很多人只為目的寫出sql語句,而不考慮sql語句的執行效率。在這我只提供一優化表順序的方法,(sql語句的優化和原則將會在我的sql server2000學習筆記中專題討論)

對sql語句執行效率可用sql server2000的查詢分析器來查看語句的執行過程。

優化表順序:一般情況下,sqlserver 會對表的連接作出自動優化。例如:select name,no from A join B on A. id=B.id join C on C.id=A.id where name=』wang』

盡管A表在From中先列出,然後才是B,最後才是C。但sql server可能會首先使用c表。它的選擇原則是相對於該查詢限制為單行或少數幾行,就可以減少在其他表中查找的總數據量。絕大多數情況下,sql server 會作出最優的選擇,但如果你發覺某個復雜的聯結查詢速度比預計的要慢,就可以使用SET FORCEPLAN語句強制sql server按照表出現順序使用表。如上例加上:SET FORCEPLAN ON…….SET FORCEPLAN OFF 表的執行順序將會按照你所寫的順序執行。在查詢分析器中查看2種執行效率,從而選擇表的連接順序。

*使用SET FORCEPLAN選擇表聯結順序

三、頁面的優化(.aspx)

主要針對幾個頁面屬性

1、EnableViewState(頁面的視圖狀態)。如果無特殊要求設置為false。使用ViewState ,每個對象都必須先序列化到 ViewState 中,然後再通過回傳進行反序列化,因此使用 ViewState是沒有代價的。盡量減少使用對象,如果可能,盡量減少放入 ViewState 中的對象的數目。下面情況基本上可以禁用viewstate:

(1)頁面控制項 (.ascx)

(2)頁面不回傳給自身。

(3)無需對控制項的事件處理。

(4)控制項沒有動態的或數據綁定的屬性值(或對於每個postpack都在代碼中處理)

單個頁面或每個頁面都禁用 ViewState,如下所示:單個頁面: 每個頁面:在 web.config 中 EnableSessionState保持默認值即可(如果頁面用到sessionstate它才會佔用資源)。EnableViewStateMac如果無安全上的特殊要求,保持默認值。

2、Pagelayout.頁面布局模型。建議使用Flowlayout(元素不帶絕對定位屬性添加).Gridlayout(絕對定位屬性)由於採用絕對定位,將會比Flowlayout生產更多的代碼,主要是控制項的定位信息。

3、項目發布的時候切記解除頁面的Debug狀態。

4、Html語言的優化。我的建議是熟練掌握Html/javascript,少用vs.net2003自動生產的代碼,它會自動生成一些無用的html代碼。

5、smart navigation設置為true能讓用戶明顯的感覺性能提高。啟用此屬性後對客戶端和服務端影響不大.它能智能涮新需要涮新需涮新的部分.

四、控制項的選擇:

Html控制項和伺服器控制項的選擇。伺服器控制項帶來的方便和功能上的實現是html控制項所不能比擬的。但是是以犧牲伺服器端的資源來取得的。我個人建議:如果html控制項達不到所要實現的功能,而且和一些腳本語言(如javascrpt/vbscript)結合也不能實現的話。才會選擇伺服器控制項。選擇伺服器控制項後,也盡量對其控制項優化,如取消一些頁面狀態等(具體看控制項的優化)

伺服器控制項的選擇:主要針對幾個常用數據控制項說明一下:

DataGrid:自帶最強大的數據顯示控制項,內置了對數據的修改、刪除、添加、分頁等很多實用功能。如果你只需對數據顯示的話,盡量不要選擇DataGrid(它把數據都存儲在viewstate中).也不要使用自帶的分頁功能,microsoft在自動分頁的底層做了很多工作,雖然使用方便了,但性能開銷大了。

DataList:比DataGrid功能少了很多。但自定義性強了很多。特有的多行數據顯示,給我們帶來了很多方便。DataGrid能實現的功能,它基本能實現。所以建議使用它。

Repeater:功能最少,但自定義性非常強。如果只需對數據顯示,建議使用。由於減少了很多功能,對伺服器的性能帶來消耗最小。因此,如果是對數據顯示的話,我基本上都是選擇Repeater然後DataList最後DataGrid

*盡量選擇html控制項。能在客戶端實現的功能就在客戶端實現(熟練掌握javascript),減少伺服器的壓力。數據控制項選擇順序:Repeater、DataList、DataGrid

五、伺服器控制項的優化:

1、Viewstate

控制項的viewstate與頁面的viewstate基本是一致的。用來保存控制項的一些狀態。處理原則和處理頁面的viewstate一樣。有興趣的可以用Datagrid綁定數據測試下viewstate保存的數據量有多大,它所保存的數據基本和Datagrid顯示的數據量大小是等同的。

2、Ispostpack

默認false.需要產生事件的時候才需設置為true.

控制項的優化,主要看你對此控制項的熟悉情況。對控制項內部運作的原理越了解,就會對其作出合適的優化。

9、asp.net網頁主要用table布局的話如何優化頁面載入的速度?

不會有太大影響的。
你是企業內部用的,流量不會太大。所以不會有任何實質上的影響。
而且,TABLE 用得好,效果未必比 DIV 差。
你可以想像,在 W3C 標准流行以前,人們都使用TABLE ,不見得網站會很慢。
所以,標准只存在於人們自己的心目中。。。
就像 W3C認為 <strong> 比 <b> 更好一樣。。。

TABLE 的問題,主要在於嵌套。你少嵌套幾個表格就沒有事情了。

一般不要超過三層以上就可以了。

另外,不要把所有內容都放在一個大表格里。應該適當的分開。

10、兩個域名,.com .net都指向一個網站,對優化好嗎?

分個主次,.com為主 .net為鋪,com主要來優化,net只是備用而已,不必去優化。

從百度的SEO手冊上來看,同一個網站,如果域名過多,對優化是有影響的。所以,一個網站,可以有多個備用的域名,但優化只集中力量優化一個。

與如何優化aspnet網站相關的知識