欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在A(yíng)SP中使用均速分頁(yè)法提高分頁(yè)速度
在A(yíng)SP中使用均速分頁(yè)法提高分頁(yè)速度
作者: asilas   www.ASPCool.com 時(shí)間:2005-10-20 上午 01:22:44  閱讀次數:797

     一、適用范圍
    均速分頁(yè)法主要適用于文章系統,新聞系統等排序方法固定的ASP+ACCESS應用
  
  二、特點(diǎn)說(shuō)明
   很多用過(guò)一些文章系統或是新聞系統的朋友知道,一般的文章系統或是新聞系統,在分類(lèi)分頁(yè)時(shí),通常是通過(guò)讀取數據庫中滿(mǎn)足條件的排序后數據,然后根據請求頁(yè)號,通過(guò)定位操作,指向某條數據,并且開(kāi)始讀取這條數據后面的若干條數據作為一頁(yè)。這種分頁(yè)方法,原理簡(jiǎn)單,但是存在的問(wèn)題是每次都需要把數據庫中滿(mǎn)足條件的排序后數據都讀取出來(lái),如果有兩千條數據,這個(gè)還好,如果有兩萬(wàn)條呢?顯示,這會(huì )占用大量的內存,浪費很多服務(wù)器資源。當然,如果有條件的,可以用SQL數據庫,這樣就好辦多了,用一點(diǎn)存儲過(guò)程就全部解決了。不過(guò)可能很多朋友還是在用ACCESS數據庫,這樣就沒(méi)有辦法了。當然,還有一些程序是把分頁(yè)生成HTML,就像不少下載站點(diǎn)一樣,大家有沒(méi)有想過(guò),這樣會(huì )出現什么問(wèn)題?如果我在后臺一次添加一條記錄,那么我得把這個(gè)分類(lèi)中所有的分頁(yè)都重新生成一次HTML,這是肯定的,想想吧,這樣效率是不是很差。
   均速分頁(yè)法就是為了解決在A(yíng)CCESS數據庫中,大量數據的分頁(yè)而想出來(lái)的。它兼有HTML分頁(yè)和傳統ADO分頁(yè)的優(yōu)點(diǎn)。一是速度快,占用資源少,不管你是第一頁(yè)還是第一百頁(yè),程序速度都是相同的。而且在數據添加時(shí),不必把所有分頁(yè)都重新生成。下面我把原理介紹一下
  
  三、分頁(yè)原理
   數據庫中有一個(gè)article表,一個(gè)class表,我們不考慮是不是無(wú)限級分類(lèi)還是兩級分類(lèi),這個(gè)與我們無(wú)關(guān)。
   [article] id int IDENTITY (1, 1) NOT NULL, classid int default 0, title varchar(100), addtime datetime
   [class] id int IDENTITY (1, 1) NOT NULL, classname varchar(20)
  
   1、生成分頁(yè)
   如果class表中有一行數據是id為1,classname為“ASP分類(lèi)”,我們先把所有article中所有classid=1的數據都取出來(lái),(www.china-u.com)然后按addtime升序排列,這個(gè)與普通的ADO分面是一樣的,但是,下面我們要進(jìn)行一些處理。
   我們動(dòng)態(tài)的在數據庫里生成一個(gè)表,名字叫[page_1],1就是對應的classname為“ASP分類(lèi)”的ID自動(dòng)編號。
   [page_1] pagenum int, pagestr text
  
   我們先每20條數據生成一個(gè)str,每個(gè)str實(shí)際就是顯示時(shí)這20條數據庫的列表,然后為這個(gè)str編個(gè)號XXX,如果是0-19條記錄,那么XXX就是001,如果是20-39,XXX就是002,以此類(lèi)推。把str和它的編號加入page_1中。我們這里假設最大的是84
  
   大家肯定會(huì )想到,數據不可能總是整除19(20個(gè)數據應該是mod 19)呀,當然,我們要處理一下零頭,這些零頭應該是最新的數據(我們是按addtime)排列的。我們再動(dòng)態(tài)的建立一個(gè)表,[aritcle_1]
   [article_1] id int IDENTITY (1, 1) NOT NULL, artid int, classid int default 0, title varchar(100), addtime datetime
   把多出來(lái)的零頭數據加入這個(gè)表中。
  
  
   2、數據的顯示
   定義pagecount是[page_1]的記錄數
  
   我們分兩種情況來(lái)
   (1)如果article_1沒(méi)有記錄(沒(méi)有零頭數據)
   第一頁(yè)是84,83
   第二頁(yè)是82,81
   第三頁(yè)是80,79
   ……
   第N頁(yè)是 : pagecount-(2*N-2), pagecount-(2*N-2)-1
  
   (2)如果article_1有記錄(有零頭數據)
   第一頁(yè),調用article_1的數據,84
   第二頁(yè),83,82
   ……
   第N頁(yè)是 : pagecount-(2*N-3), pagecount-(2*N-3)-1
  
   說(shuō)明一下:其中84,83等等這些數字,就是在page_1中,你對應的str編號XXX
  
   說(shuō)到這里可能大家就比較明白了,均速分頁(yè)法的原理實(shí)際是原來(lái)把頁(yè)面分好,在分頁(yè)的時(shí)候直接用頁(yè)面進(jìn)行拼接。這比每次分頁(yè)的時(shí)候從數據庫里直接調用數據再進(jìn)行分頁(yè)要來(lái)得省資源。
   同時(shí),還可以說(shuō)明一點(diǎn)的是,你完全可以不建立page_1表,而把這些str保存為HTML,然后在分頁(yè)的時(shí)候讀取出HTML頁(yè)面進(jìn)行拼接。
  
   3、數據的添加
   在傳統的HTML分頁(yè)中,添加新數據后,要把所有的HTML分頁(yè)重新生成一次,在均速分頁(yè)法中,就無(wú)需這樣。我們前面已經(jīng)設定了每個(gè)小頁(yè)面只顯示20條記錄,那么article_1表中,也只保存最多19條記錄。我們新添加一條記錄,那么同時(shí)把這條記錄加入到article_1中,如果article_1中的數據已經(jīng)超19,那么就把這里面的數據生成一個(gè)str,加上編號后保存在[page_1]里,當然,如果你是用生成HTML的,你可以直接生成一個(gè)HTML。如果article_1中的數據已經(jīng)沒(méi)有超19,那么就不用管它了。
  
  
  四、均速分頁(yè)法和傳統分頁(yè)的比較
   我用了兩千條數據的一個(gè)數據庫進(jìn)行測試,在XP系統下,P3 1G,256M內存的硬件條件下,用均速分頁(yè)法平均速度在50MS,正負不超過(guò)10MS,用普通ADO分頁(yè),速度在85MS,正負在20-35MS之間,可見(jiàn)用均速分頁(yè)法,在速度和穩定性上都是不錯的。
  
   當然,對于數據庫小的情況下,這樣的優(yōu)勢可能并不明顯,或者可能用ADO分頁(yè)來(lái)的更快,但是如果在兩萬(wàn)條數據的分頁(yè)中,均速分頁(yè)法的平均速度是普通ADO分頁(yè)法的一半。
  
   當然,均速分頁(yè)法也有自己的不足,比如程序復雜度比傳統分頁(yè)來(lái)的高,在數據庫少的時(shí)候性能不如ADO。
  
  
  五、最后一點(diǎn)說(shuō)明:
   本文主要介紹的是均速分頁(yè)法的一個(gè)原理,我花了一個(gè)晚上用程序進(jìn)行了實(shí)踐,是可行的。但我主要是把str生成HTML后讀取,與本文介紹的數據庫保存str有點(diǎn)不同,不過(guò)原理是一樣的。
  
   如果您有條件使用SQL數據庫,那么我建議您還是使用存儲過(guò)程來(lái)實(shí)現分頁(yè)的提速。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
程序設計——ASP網(wǎng)站開(kāi)發(fā)視頻教程
asp教程之ADO 存取數據庫時(shí)如何分頁(yè)顯示
基于A(yíng)SP.NET的自定義分頁(yè)顯示 數據庫 分頁(yè)
數據分頁(yè)顯示
Asp.net中DataGrid控件的自定義分頁(yè)
asp分頁(yè)超級好用,
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久