ASP生成靜態(tài)網(wǎng)頁的方法
隨著網(wǎng)站訪問量的加大,每次從數(shù)據(jù)庫讀取都是以效率作為代價(jià)的,很多用ACCESS作數(shù)據(jù)庫的更會深有體會,靜態(tài)頁加在搜索時(shí),也會被優(yōu)先考慮?;ヂ?lián)網(wǎng)上流行的做法是將數(shù)據(jù)源代碼寫入數(shù)據(jù)庫再從數(shù)據(jù)庫讀取生成靜態(tài)面,這樣無形間就加大了數(shù)據(jù)庫。將現(xiàn)有的ASP頁直接生成靜態(tài)頁,將會節(jié)省很多。
下面的例子是將、index.asp?id=1/index.asp?id=2/index.asp?id=3/這三個(gè)動(dòng)態(tài)頁面,分別生成ndex1.htm,index2.htm,index3.htm存在根目錄下面:
以下為引用的內(nèi)容: <% 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("/")"" Html_Temp = Html_Temp&FilePath"</LI>" Do_Url = "http://" 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 %> |
PHP生成靜態(tài)網(wǎng)頁的方法
看到很多朋友在各個(gè)地方發(fā)帖問PHP生成靜態(tài)文章系統(tǒng)的方法,以前曾做過這樣一個(gè)系統(tǒng),遂談些看法,以供各位參考。好了,我們先回顧一些基本的概念。
一,PHP腳本與動(dòng)態(tài)頁面。
PHP腳本是一種服務(wù)器端腳本程序,可通過嵌入等方法與HTML文件混合,也可以類,函數(shù)封裝等形式,以模板的方式對用戶請求進(jìn)行處理。無論以何種方式,它的基本原理是這樣的。由客戶端提出請求,請求某一頁面 -----> WEB服務(wù)器引入指定相應(yīng)腳本進(jìn)行處理 -----> 腳本被載入服務(wù)器 -----> 由服務(wù)器指定的PHP解析器對腳本進(jìn)行解析形成HTML語言形式 ----> 將解析后的HTML語句以包的方式傳回給瀏覽器。由此不難看出,在頁面發(fā)送到瀏覽器后,PHP就不存在了,已被轉(zhuǎn)化解析為HTML語句??蛻粽埱鬄橐粍?dòng)態(tài)文件,事實(shí)上并沒有真正的文件存在在那里,是PHP解析而成相對應(yīng)的頁面,然后發(fā)送回瀏覽器。這種頁面處理方式被稱為“動(dòng)態(tài)頁面”。
二,靜態(tài)頁面。
靜態(tài)頁面是指在服務(wù)器端確實(shí)存在的僅含HTML以及JS,CSS等客戶端運(yùn)行腳本的頁面。它的處理方式是。由客戶端提出請求,請求某一頁面 ----> WEB服務(wù)器確認(rèn)并載入某一頁面 ----> WEB服務(wù)器將該頁面以包的形式傳遞回瀏覽器。由這一過程,我們對比一下動(dòng)態(tài)頁面,即可方現(xiàn)。動(dòng)態(tài)頁面需由WEB服務(wù)器的PHP解析器進(jìn)行解析,而且通常還需連接數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)庫存取操作,然后才能形成HTML語言信息包;而靜態(tài)頁面,無須解析,無須連接數(shù)據(jù)庫,直接發(fā)送,可大大減輕服務(wù)器壓力,提高服務(wù)器負(fù)載能力,大幅提供頁面打開速度和網(wǎng)站整體打開速度。但其缺點(diǎn)是,不能動(dòng)態(tài)地對請求進(jìn)行處理,服務(wù)器上必須確實(shí)存在該文件。
三,模板及模板解析。
模板即尚未填充內(nèi)容html文件。例如:
以下為引用的內(nèi)容: temp.html <HTML> <TITLE>{ title }</TITLE> <BODY> this is a { file } file's templets </BODY> </HTML> |
以下為引用的內(nèi)容: templetest.php <?php $title = "http://siyizhu.com測試模板"; $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max"; $fp = fopen ("temp.html","r"); $content = fread ($fp,filesize ("temp.html")); $content .= str_replace ("{ file }",$file,$content); $content .= str_replace ("{ title }",$title,$content); echo $content; ?> |