• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    優化Web數據庫頁面

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 22次 | 進入軟件測試論壇討論

    領測軟件測試網 隨著互聯網的發展,Web數據庫的應用越來越多,用戶對訪問Web數據庫頁面的速度也要求越來越高。訪問Web頁面的速度的快慢取決于網絡的速度、Web頁面所在服務器性能以及Web頁面本身的設計等多方面原因。本文介紹一種根據筆者多年開發經驗總結的優化Web數據庫頁面的方法。 
    解決原理 
    用戶訪問靜態Web頁面時,Web服務器只需簡單地將該頁面傳回給用戶瀏覽器,由瀏覽器解釋執行;而用戶訪問“動態”Web頁面時(含服務器端執行程序),Web服務器需要先解釋執行該頁面,將嵌入在頁面中的服務器端執行代碼在服務器端執行完畢,并將執行結果形成一個“靜態”的Web頁面傳回給用戶瀏覽器,再由瀏覽器解釋執行。 
    在Web數據庫應用系統中,當用戶訪問Web數據庫頁面時,Web服務器需要先與數據庫服務器交換信息,從數據庫中動態地讀取數據并形成一個“靜態”的Web頁面傳回用戶瀏覽器端,再由瀏覽器解釋執行。 
    基于Web頁面的上述執行過程,如果把“從數據庫中動態讀取數據”只執行一次并形成一個“靜態”的HTML代碼段,在需要從數據庫中動態讀取數據的頁面中插入該段代碼,就能減少訪問數據庫的開銷,從而提高訪問該頁面的速度,其原理類似于程序的一次編譯、多次執行。 
    編程實例 
    下面以火車訂票系統為例來說明該方法的具體實現過程;疖囉喥毕到y中站名、車次、各停*站及其停車時間等數據被設計存放在數據庫中。由于車次、站名的增減、停車時間的變更等信息不會頻繁地發生變化,具有相對的穩定性,所以可以在數據需要變更時由系統管理員一次性執行一段代碼,從數據庫中提取數據并生成若干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數據庫的訪問速度。當然,對需要反映數據庫中當前數據狀態的查詢統計頁面是不能進行“靜態”優化的。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>