最佳化Web資料庫頁面(轉)

來源:互聯網
上載者:User
web|資料|資料庫|頁面|最佳化 隨著互連網的發展,Web資料庫的應用越來越多,使用者對訪問Web資料庫頁面的速度也要求越來越高。訪問Web頁面的速度的快慢取決於網路的速度、Web頁面所在伺服器的效能以及Web頁面本身的設計等多方面原因。本文介紹一種根據筆者多年開發經驗總結的最佳化Web資料庫頁面的方法。
解決原理
使用者訪問靜態Web頁面時,Web伺服器只需簡單地將該頁面傳回給使用者瀏覽器,由瀏覽器解釋執行;而使用者訪問“動態”Web頁面時(含伺服器端執行程式),Web伺服器需要先解釋執行該頁面,將嵌入在頁面中的伺服器端執行代碼在伺服器端執行完畢,並將執行結果形成一個“靜態”的Web頁面傳回給使用者瀏覽器,再由瀏覽器解釋執行。
在Web資料庫應用系統中,當使用者訪問Web資料庫頁面時,Web伺服器需要先與資料庫伺服器交換資訊,從資料庫中動態地讀取資料並形成一個“靜態”的Web頁面傳回使用者瀏覽器端,再由瀏覽器解釋執行。
基於Web頁面的上述執行過程,如果把“從資料庫中動態讀取資料”只執行一次並形成一個“靜態”的HTML程式碼片段,在需要從資料庫中動態讀取資料的頁面中插入該段代碼,就能減少訪問資料庫的開銷,從而提高訪問該頁面的速度,其原理類似於程式的一次編譯、多次執行。
編程執行個體
下面以火車訂票系統為例來說明該方法的具體實現過程。火車訂票系統中站名、車次、各停靠站及其停車時間等資料被設計存放在資料庫中。由於車次、站名的增減、停車時間的變更等資訊不會頻繁地發生變化,具有相對的穩定性,所以可以在資料需要變更時由系統管理員一次性執行一段代碼,從資料庫中提取資料並產生若干HTML代碼的“靜態”引用檔案,供需要站名、車次、停靠站、停車時間的各個Web頁面引用。只有到下次鐵路系統再次調整時間、車次等資訊時,系統管理員才有必要修改資料庫中的資料,重建並覆蓋原有的HTML代碼“靜態”引用檔案,而引用該“靜態”代碼的各個Web頁面則無需任何修改。
下面以其中“站名”為例,說明“靜態”代碼的產生以及各Web頁面對此“靜態”代碼的引用方法。設系統採用Access資料庫train.mdb,表名為tab_train,“站名”欄位為stations。首先從資料庫中讀取“站名”並產生“靜態”HTML代碼的ASP程式,然後把產生的“靜態”代碼儲存到檔案stations.inc中。
/*make_stations.asp*/
<%
Set fso = Server.CreateObject(“Scripting.FileSystemObject”)
FilePath = Server.MapPath(“station.inc”)
Set file = fso.CreateTextFile(FilePath)
Set conn = server.CreateObject(“ADODB.Connection”)
DBPath = Server.MapPath(“train.mdb”)
conn.Open “driver={Microsoft Access Driver (*.mdb)}; dbq=”& DBPath
sql = “select stations from tab_train”
Set rs = conn.Execute(sql)
line = “function put_stations(){”
file.WriteLine line
line = “document.writeln(‘ ” & “ <select name = ‘stations’ >’)”
file.WriteLine line
While Not rs.EOF
line = “document.write(‘<option >” & rs(“stations”) & “</option>’)”
file.WriteLine line
rs.MoveNext
Wend
line = “document.write(‘</select>’) }”
file.WriteLine line
file.close
%>
引用“靜態”的“站名”的HTML頁面如下:
< html >
< head >
< title >引用stations.inc檔案</title>
< !--include file=“stations.inc”-- >
< /head >
< body >
< table >
< tr >< td >
< script language=“javascript”> put_stations() < /script >
< /td >< /tr >
< /table >
</body>
</html>
小 結
在make_stations.asp程式碼中,採用了產生“函數”的方法,這樣設計的好處是可以在其他頁面的任何布局位置上引用該“函數”。在稍複雜的Web資料庫應用系統中,一般都或多或少地存在著某些“不會頻繁地發生變化,具有相對的穩定性”的資訊,對這些資訊進行“靜態”最佳化,可以顯著地提高Web資料庫的訪問速度。當然,對需要反映資料庫中當前資料狀態的查詢統計頁面是不能進行“靜態”最佳化的。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。