熱門標簽
選擇.NET語言開發網站的利與弊---深圳網站建設有話說
就目前網站建設行業開發使用的語言來講,更多的還是集中于兩個語言上面,一個php,一個就是ASP.NET了。而目前深圳網站建設市場也同樣有著這樣的情況,而對于有建站需求的企業來講,更何況可能對于這些不太了解的企業,在選擇上就出現了一些小小的矛盾。那今天深圳網站建設-云梯就關于網站后臺開發的語言和大家具體的分析下,但是這里小編不打算多講,只說下ASP.NET的語言使用的情況,原因沒有別的只因為我們云梯一直使用這個,可能比較有話語權,而且在深圳網站建設市場來看ASP.NET還是有很大的比列的。
搜索引擎優化的角度考慮
根據網上的資料來看,網站靜態化考慮多的就是SEO了,事實上靜態頁面確實十分有利于搜索引擎蜘蛛的抓取,另外早期的ASP.NET Web Form網站對于SEO則不是太友好。
那么為什么靜態化會有利于SEO呢?這里主要從URL進行分析,對于搜索引擎蜘蛛來說,動態的URL往往是十分不友好的,雖然現在搜素引擎的技術已經可以抓取到動態頁面的內容,但是相比靜態URL簡短、美觀、穩定的性質,動態URL地址中過多且復雜的參數會使蜘蛛難以理解和區分。
動態頁面本身是依靠傳入的參數來查詢顯示數據庫的內容,對于引擎蜘蛛來說,相同名稱的.aspx頁面都是同一個頁面,不同的只是參數,搜索引擎只能根據這些復雜的參數來判斷URL是否為不同的頁面,所以動態URL對于搜素引擎來說是十分不友好的。
而靜態頁面則不同,由于靜態頁面的URL對應的是服務器上頁面所在的磁盤路徑,搜索引擎很容易區分和理解頁面的地址,而且靜態URL一般也不會帶有復雜的參數。
對于ASP.NET Web Form網站來說,如果只是想優化URL,那么倒是可以考慮使用偽靜態的方法。幸運的是,對于使用ASP.NET MVC開發的網站來說,就沒有這個煩惱了,ASP.NET MVC的路由機制就為我們提供了對seo十分友好的URL,甚至可以考慮不對網站進行靜態化操作。
另外靜態頁面訪問的速度比動態頁面快,從SEO的角度來看是十分有利的。畢竟對于搜索引擎蜘蛛,如果一個頁面響應速度慢并且經常打不開,那么就等于釋放出兩個信號:1、網站用戶體驗不好。2、網站內容很難抓取。這樣會對網站排名造成極大的負面影響。
從網站服務器壓力和訪問速度考慮
這里先從訪問速度進行對比,靜態頁面的訪問速度確實比動態頁面快,畢竟靜態頁面只需從硬盤讀取頁面文件就可以將內容呈現給用戶,而動態頁面比如asp.net網站一般還需要經過程序處理相關的業務邏輯,以及從數據庫中讀取數據才能渲染頁面并呈現出來,一定程度上會拖慢頁面的訪問速度。在遇到高強度訪問壓力的時候,靜態頁面快速和穩定的優勢將會完全體現出來。
這里再從服務器資源角度來看,對于站長來說服務器配置越好所需的費用越高,那么靜態化的網站在服務器資源方面又是如何呢?這么說吧,靜態頁面消耗硬盤的資源較多,一般在磁盤空間容量方面,主要是大量的頁面文件和分級文件夾。另外靜態頁面在生成時候,對于硬盤的IO讀寫操作和CPU消耗也是十分巨大的,特別是遇到有大量的頁面要進行靜態化的時候,CPU運算和IO操作將會更加顯著的降低服務器性能。
而ASP.NET這類的動態網站一般比較消耗服務器的內存資源,這里需要開發人員注意對網站進行優化,盡量避免將大量數據保存至會話中,以及在使用緩存方面也需要額外注意。另外有些動態網站對CPU使用率也是十分高的,比如一些提供圖片處理的服務網站。此外需要對數據庫進行大量增刪改操作的動態網站,對服務器壓力非常的大,例如常見的論壇類網站(WEB2.0),甚至有的服務器商在出租服務器時,會有額外的提示服務器可承受的壓力數據。
總體來說,靜態化后的網站確實有利于降低服務器壓力。在生成靜態頁面時所造成的服務器性能影響,是可以通過一定的手段進行優化。另外大家也可以了解下CDN技術,即內容分發網絡,對于靜態頁面來說,一旦使用了這個技術,外加上瀏覽器緩存,那么用戶訪問網站的響應速度就像火箭一樣快!訪問速度快了,從另一個角度來看又是有利于搜索引擎對網站內容的抓取。
從技術角度分析
作為一個ASP.NET開發人員,曾經在對網站進行靜態化的時候遇到過許多問題。先從網站程序的復雜度進行分析,一個具有靜態化功能的網站必是非常復雜的,因為靜態化一個網站要考慮的技術性問題十分多(這里不包括偽靜態)。
進行靜態操作的時候,不僅要考慮到單個頁面的操作,還需要注意整體與單個之間的復雜關聯,有種牽一發而動全身的壓迫。就拿常見的上一頁和下一頁來說,如果當前網站的某一篇文章刪除了,那么這篇文章對應的上下頁就必須要重新進行靜態化,否則鏈接的地址將會出現404。簡單的頁面尚且如此,更別說那些大型的網站了,每個頁面中超級復雜的關系就夠喝一壺了。
再從進行靜態操作的時機來看,一般開發人員要實現相應的觸發開關功能,用于判斷是否要進行靜態化操作,以及要進行什么樣的靜態化操作。是局部還是整體?靜態頁面文件是否存在?靜態頁面的數據是否過期?這些問題都說明了生成的時機是很重要的,否則會造成用戶看到的數據不是新的內容。
此外靜態化操作對服務器性能的影響也是煎熬開發人員的難題之一,我們不可能頻繁的進行靜態化操作,對磁盤的IO操作以及大量的邏輯處理都會消耗大量CPU的資源,服務器性能隨之受到影響。在進行批量操作時,一定要考慮使用線程進行處理,千萬不能阻塞網站的整體進程。
老實話,對于網站開發者來說,靜態功能也許是一個頭疼的問題,開發難度加大了,同時維護難度和管理難度也通用加大,在網站備份的時候還得考慮是否要備份這些靜態文件!特別是大型的網站,靜態化往往需要進行復雜的架構設計!
總結ASP.NET靜態化的利弊
是否是需要靜態化,還是得看整體的需求,俗話說只有適合自己的才是知名的(有點廢話的趕腳 ^^)。
一般來說一些不經常更新內容的頁面就可以考慮進行靜態操作,比如新聞頁面,小說的章節頁面,畢竟這些內容一旦發布了,就很少會進行改動。而且可以使用CDN技術進行加速。
優點:
1、利于SEO,體現在友好的URL路徑和快速的訪問速度,asp.net mvc網站可以忽略URL的影響。
2、一個字:就是快!!!靜態頁面訪問速度快,用戶體驗好,結合CDN技術、緩存和相應的架構,提速效果更加明顯!
3、相比動態頁面一定程度上減輕服務器壓力
缺點:
1、可能需要使用大量硬盤空間
2、增加網站開發復雜度,不利于程序維護和管理。
3、不太靈活,靜態化操作是需要觸發開關的,不可能頻繁的進行操作,可能導致數據更新慢,需要進行相應的設計。
http://79806.xyz/jianzhanzhishi/7793.html 選擇.NET語言開發網站的利與弊---深圳網站建設有話說