ASP生成靜態頁面

動態網頁:一般指的是採用ASP,ASP.NET,JSP,PHP,Cold Fusion,CGI等程式動態生成的頁面,該網頁中的大部分數據內容來自與網站相連的資料庫。這個頁面在網路空間中並不存在,動態網頁往往容易給人留下深刻的印象。此外,動態網頁還具有容易維護、更新的優點。

基本介紹

  • 中文名:ASP生成靜態頁面
  • 採用:JSP,PHP,Cold Fusion點
  • 包括:來自與網站相連的資料庫
  • 優點:容易維護、更新
什麼是動態網頁和靜態網頁,靜態頁面效果,靜態頁生成方法,

什麼是動態網頁和靜態網頁

首先網頁獲得用戶的指令,然後網頁拿著指令到資料庫中找和指令對應的數據,然後傳遞給伺服器,通過伺服器的編譯把動態頁面編譯成標準的HTML代碼,傳遞給用戶瀏覽器,這樣用戶就看到了網頁。問題出來了,每次訪問網頁都要經過這么一個過程,這一過程至少需要幾秒鐘的時間,訪問的人數一多,頁面的載入速度就會變慢,對伺服器來說也是一種負擔;從用戶角度來說,網頁載入的慢,所以大型網站都是靜態網頁呈現。絕大多數的搜尋引擎都已支持動態頁面的抓取,這就是我們現在這些搜尋引擎進行搜尋時,結果中出現動態連結的原因,但抓取的數量比靜態頁面要差的很多倍。
靜態網頁:靜態網頁就簡單了,靜態網頁是實際存在的,無需經過伺服器的編譯,直接載入到客戶瀏覽器上顯示出來。由此可見,動態網頁在訪問速度上並不占優勢。但是靜態網頁也有自己的缺陷,由於占用空間比較大,需要大量的伺服器,花費上要高於動態網頁網站。
偽靜態:論壇和留言系統程式由於評論的人較多,更新速度較快,用純靜態可以說是不切實際,但是用純靜態搜尋引擎非常友好,這時候就出現了一種新的技術,偽靜態。
偽靜態的缺點是頁面訪問速度較慢,cpu占用資源較大,如果是ISS數是1000的網站,當有300人同時線上的時候就會出現錯誤。但是偽靜態對收錄同樣能起到非常好的作用。

靜態頁面效果

在三年前,有百分之八十的網站要求做成動態的。也就是從那個時候也就是ASP的發展高峰期。一些靜態網頁也要求做成動態網站。但是這二年來,網站要求做成靜態的。也就是網頁要求靜態化。
為什麼會有這樣的變化?到底意味著什麼?
目前網頁HTML靜態化是利用其它的動態技術生成HTML靜態頁面,還不是靜態網站。因為的確是這樣的,生成HTML靜態網頁有一定的好處。
一、加快頁面打開瀏覽速度,靜態頁面無需連線資料庫打開速度較動態頁面有明顯提高;
二、有利於搜尋引擎最佳化SEO,Baidu、Google都會優先收錄靜態頁面,不僅被收錄的快還收錄的全;
三、減輕伺服器負擔,瀏覽網頁無需調用系統資料庫
四、網站更安全,HTML頁面不會受Asp相關漏洞的影響;
觀看一下大一點的網站基本全是靜態頁面,而且可以減少攻擊,防sql注入。資料庫出錯時,不影響網站正常訪問。
生成html文章雖操作上麻煩些,程式上繁雜些,但為了更利於搜尋,為了速度更快些,更安全,這些犧牲還是值得的。
說法一:
1、省掉了伺服器處理時間和調用資料庫的時間,訪問速度比一般動態網站快10-20倍;
2、不用調用資料庫,伺服器端的CPU調用大大減少,增加伺服器的性能;
3、生成靜態路徑利用搜尋引擎的抓取和收錄;
4、在排名中靜態頁面的排名權重要高於動態路徑的頁面。
說法二:
1、安全,靜態頁面從理論上講是沒有攻擊漏洞的;
2、沒有資料庫訪問或減少伺服器對數據回響的負荷,速度快;
3、最佳化引擎,易於搜尋引擎收錄,搜尋引擎比較喜歡收錄靜態頁面;
4、降低伺服器的承受能力,因為其不需要解析就可以返回客戶端,因此減少了伺服器的工作量,同時也減少了資料庫的成本;
5、有意義的檔案名稱,提高了可用性(對中文似乎就沒這個優勢了吧) 。
說法三:
提問:ASP生成靜態HTML後更有利於搜尋引擎收錄嗎?為什麼?
答:是的,靜態HTML更有利於搜尋引擎收錄。
因為靜態網頁和動態網頁的區別在於動態網頁可以給於瀏覽者許可權,而搜尋引擎抓取的時候是以遊客身份進入的,所以不容易被抓取和收錄,而靜態網頁由於不存在頁面許可權問題,所以更容易被收錄,相對來說如果你的動態頁面沒有加任何許可權的話也同樣容易被收錄!例如不生成靜態頁面的部落格ASP PHP .net CGI的論壇,只要沒有訪問許可權限制都會被收錄!
從以上的觀點可以看出,生成靜態頁面的好處。現在知名、主流的大站基本上都靜下來了。

靜態頁生成方法

隨著網站訪問量的加大,每次從資料庫讀取都是以效率作為代價的,很多用ACCESS作資料庫的更會深有體會,靜態頁面在搜尋時,也會被優先考慮。網際網路上流行的做法是將數據原始碼寫入資料庫再從資料庫讀取生成靜態面,這樣無形間就加大了資料庫。將現有的ASP頁直接生成靜態頁,將會節省很多。
下面的例子是將、index.asp?id=1/index.asp?id=2/index.asp?id=3/這三個動態頁面,分別生成index1.htm,index2.htm,index3.htm存在根目錄下面:
代碼如下
<%
dim strUrl,Item_Classid,id,FileName,FilePath,Do_Url,Html_Temp
Html_Temp="<UL>"
For i=1 To 3
Html_Temp = Html_Temp&"<LI>"
Item_Classid = i
FileName = "Index"&Item_Classid&".htm"
FilePath = Server.MapPath("/")&"\"&FileName
Html_Temp = Html_Temp&FilePath&"</LI>"
Do_Url = 你的網站地址
Do_Url = Do_Url&Request.ServerVariables("SERVER_NAME")&"/main/index.asp"
Do_Url = Do_Url&"?Item_Classid="&Item_Classid
strUrl = Do_Url
dim objXmlHttp
set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
objXmlHttp.open "GET",strUrl,false
objXmlHttp.send()
Dim binFileData
binFileData = objXmlHttp.responseBody
Dim objAdoStream
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open()
objAdoStream.Write(binFileData)
objAdoStream.SaveToFile FilePath,2
objAdoStream.Close()
Next
Html_Temp = Html_Temp&"<UL>"
%>
<%
Response.Write ( "成功生成檔案:" )
Response.Write ( "<BR>" )
Response.Write Html_Temp
%>
方法2:
模板檔案與數據替換法,這是一種更為方便的生成靜態頁面的方法,方法是先建立一個或者多個以html為基礎的模板檔案,在檔案中用特殊字元串代表要替換的變數值,然後用查詢與替換的方法把資料庫中的值替換相應字元串,生成.html的全靜態頁面。

相關詞條

熱門詞條

聯絡我們