• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        用XML數據島處理用戶界面問題 - 3

        用XML數據島處理用戶界面問題 - 3

        更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

        把數據庫的表數據保存到文件中

          我曾答應向你展示如何避免每次請求都要讀取數據庫和串聯成XML字符串的步驟。答案就是把數據庫的表數據保存到文件中;這樣做有幾個好處。讀取文件比查詢數據庫并把記錄集格式化成XML要快。這樣做也可以簡化你的HTML文件,因為你只需在HTML中包含對XML的引用。最后這樣做使數據對于客戶端來說是透明的。如果你以Listing 1中的方式發送XML標記符的話,用戶可以通過IE的"查看/源文件"看到數據。使用文件引用的話,用戶只能看到引用標記符,而非數據。

          只要你的數據庫記錄不是永不改變的,你就還得在數據改變時查詢數據庫。例如,你可以在SQL Server中寫一個觸發器,當"Location"表發生改變時更新"LastChanged"表中的日期和時間(Listing 3)。對于每一次請求,你可以比較
        Location"表與保存數據的XML文件的日期和時間。本文使用的Access數據庫不支持觸發器,但你可以編寫代碼來實現當"Location"表發生改變時更新"LastChanged"表的功能。你也可以每隔一段時間,如一天或一個小時就重新生成文件。

          用Scripting.FileSystemObject 和 Scripting.TextStream對象寫XML文件到硬盤中。為了能寫XML文件,你必須給IUSR_MACHINENAME匿名用帳戶足夠的權限以打開、讀、寫和刪除文件(如果你使用的是NTFS格式的分區硬盤的話)。如果你只想利用XML數據重新在客戶端建立一個記錄集的話,你可以用adPersistXML方法保存記錄集到硬盤中。如果你這樣做的話,必須注意ADO為了能從XML數據重新建立記錄集而把記錄集保存成優化的格式。這樣生成的XML對于XSL查詢語句而言即
        不美觀又不方便:

          Dim fs

          Dim ts

          dim aFilename

          aFilename = Server.MapPath _("/XMLDataIslands") & _"\locations.xml"

          set fs = Server.CreateObject _("Scripting.FileSystemObject")

          set ts = fs.OpenTextFile _(aFilename, ForWriting)

          ts.Write s

        現在,當你收到一個請求時,查看"LastChanged"表中日期和時間:

          Dim SQL

          Dim R

          Dim conn

          dim tableModifyDate

          set conn = Server.CreateObject _("ADODB.Connection")

          conn.mode = adModeRead

          conn.open "DSN=CheapPC;UID=sa;PWD="

          SQL = "SELECT " & _"LastChanged.LastChanged " & _"FROM Locations WHERE " & _"Tablename='Locations'"

          set R = conn.execute(SQL,,adCmdText)

          tableModifyDate = R("LastChanged")

        接下來,通過獲取一個File對象來比較XML文件與tableModifyDate的日期和時間,并查看它的FileCreatedOn屬性值:

          dim fs

          dim aFile

          dim rewriteFile

          rewriteFile=False

          set fs = Server.CreateObject _("Scripting.FileSystemObject")

          if fs.FileExists(aFilename) then

            Set aFile = fs.GetFile(aFilename)

            If aFile.DateCreated < _LocationsModifiedDate Then

             rewriteFile=True

            end if

          else

            rewriteFile=true

          end if
          如果XML文件不存在或需要更新時,你必須寫文件(Listing 4)。這樣就重新從數據庫讀取數據并格式化成XML,但你只需覆蓋舊的XML文件而不必把XML發送到瀏覽器。現在在你的HTML文件中,你只需引用該XML文件即可。當你的XML文件不需要更新,你的服務器會略過數據的讀取與格式化,只是簡單地讀取XML數據到瀏覽器。從整體上看,讀取XML數據為你的服務器節省了大量的處理能力,使你的頁面更有效率。


        源代碼可以從http://www.yesky.com/34670816/xmldaima.zip下載

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产激情免费视频在线观看| 国产91在线|亚洲| 青草久久精品亚洲综合专区| 免费三级毛片电影片| 亚洲高清视频免费| 91成人在线免费观看| 亚洲人成影院在线| 1000部无遮挡拍拍拍免费视频观看| 亚洲人成网址在线观看 | 亚洲AV无码无限在线观看不卡| 国产成人精品免费视频大| 亚洲国语在线视频手机在线| 18勿入网站免费永久| 亚洲1234区乱码| 免费看美女被靠到爽的视频| 久久久久亚洲AV无码去区首| 亚洲va中文字幕无码| 国产高潮流白浆喷水免费A片 | 国产AV无码专区亚洲AV毛网站| 三年片在线观看免费观看大全动漫| 亚洲一卡2卡三卡4卡有限公司| 久久久久久曰本AV免费免费| 亚洲综合av一区二区三区| 四虎AV永久在线精品免费观看| xxxxx做受大片在线观看免费| 亚洲国产成人精品不卡青青草原| 96免费精品视频在线观看| 2020亚洲男人天堂精品| 亚洲国产精品尤物YW在线观看| 免费视频精品一区二区三区| 亚洲国产激情在线一区| 亚洲精品一级无码鲁丝片| 国产va在线观看免费| 亚洲JLZZJLZZ少妇| 久久久久亚洲精品无码系列| 成人免费无码视频在线网站| 久久久久久国产a免费观看不卡| 亚洲综合免费视频| 亚洲高清免费视频| 亚洲免费视频观看| 一级做a爰片久久毛片免费陪 |