六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在ASP中使用均速分頁法提高分頁速度

[摘要]一、適用范圍  均速分頁法主要適用于文章系統(tǒng),新聞系統(tǒng)等排序方法固定的ASP+ACCESS應(yīng)用二、特點(diǎn)說明 很多用過一些文章系統(tǒng)或是新聞系統(tǒng)的朋友知道,一般的文章系統(tǒng)或是新聞系統(tǒng),在分類分頁時...

一、適用范圍
  均速分頁法主要適用于文章系統(tǒng),新聞系統(tǒng)等排序方法固定的ASP+ACCESS應(yīng)用

二、特點(diǎn)說明
    很多用過一些文章系統(tǒng)或是新聞系統(tǒng)的朋友知道,一般的文章系統(tǒng)或是新聞系統(tǒng),在分類分頁時,通常是通過讀取數(shù)據(jù)庫中滿足條件的排序后數(shù)據(jù),然后根據(jù)請求頁號,通過定位操作,指向某條數(shù)據(jù),并且開始讀取這條數(shù)據(jù)后面的若干條數(shù)據(jù)作為一頁。這種分頁方法,原理簡單,但是存在的問題是每次都需要把數(shù)據(jù)庫中滿足條件的排序后數(shù)據(jù)都讀取出來,如果有兩千條數(shù)據(jù),這個還好,如果有兩萬條呢?顯示,這會占用大量的內(nèi)存,浪費(fèi)很多服務(wù)器資源。當(dāng)然,如果有條件的,可以用SQL數(shù)據(jù)庫,這樣就好辦多了,用一點(diǎn)存儲過程就全部解決了。不過可能很多朋友還是在用ACCESS數(shù)據(jù)庫,這樣就沒有辦法了。當(dāng)然,還有一些程序是把分頁生成HTML,就像不少下載站點(diǎn)一樣,大家有沒有想過,這樣會出現(xiàn)什么問題?如果我在后臺一次添加一條記錄,那么我得把這個分類中所有的分頁都重新生成一次HTML,這是肯定的,想想吧,這樣效率是不是很差。
    均速分頁法就是為了解決在ACCESS數(shù)據(jù)庫中,大量數(shù)據(jù)的分頁而想出來的。它兼有HTML分頁和傳統(tǒng)ADO分頁的優(yōu)點(diǎn)。一是速度快,占用資源少,不管你是第一頁還是第一百頁,程序速度都是相同的。而且在數(shù)據(jù)添加時,不必把所有分頁都重新生成。下面我把原理介紹一下

三、分頁原理
    數(shù)據(jù)庫中有一個article表,一個class表,我們不考慮是不是無限級分類還是兩級分類,這個與我們無關(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、生成分頁
    如果class表中有一行數(shù)據(jù)是id為1,classname為“ASP分類”,我們先把所有article中所有classid=1的數(shù)據(jù)都取出來,(www.knowsky.com)然后按addtime升序排列,這個與普通的ADO分面是一樣的,但是,下面我們要進(jìn)行一些處理。
    我們動態(tài)的在數(shù)據(jù)庫里生成一個表,名字叫[page_1],1就是對應(yīng)的classname為“ASP分類”的ID自動編號。
    [page_1] pagenum int, pagestr text

    我們先每20條數(shù)據(jù)生成一個str,每個str實(shí)際就是顯示時這20條數(shù)據(jù)庫的列表,然后為這個str編個號XXX,如果是0-19條記錄,那么XXX就是001,如果是20-39,XXX就是002,以此類推。把str和它的編號加入page_1中。我們這里假設(shè)最大的是84

    大家肯定會想到,數(shù)據(jù)不可能總是整除19(20個數(shù)據(jù)應(yīng)該是mod 19)呀,當(dāng)然,我們要處理一下零頭,這些零頭應(yīng)該是最新的數(shù)據(jù)(我們是按addtime)排列的。我們再動態(tài)的建立一個表,[aritcle_1]
    [article_1]  id int IDENTITY (1, 1) NOT NULL, artid int, classid int default 0, title varchar(100), addtime datetime
    把多出來的零頭數(shù)據(jù)加入這個表中。


    2、數(shù)據(jù)的顯示
    定義pagecount是[page_1]的記錄數(shù)

    我們分兩種情況來
    (1)如果article_1沒有記錄(沒有零頭數(shù)據(jù))
     第一頁是84,83
     第二頁是82,81
     第三頁是80,79
     ……
     第N頁是 : pagecount-(2*N-2), pagecount-(2*N-2)-1 

    (2)如果article_1有記錄(有零頭數(shù)據(jù))
     第一頁,調(diào)用article_1的數(shù)據(jù),84
     第二頁,83,82
     ……
     第N頁是 : pagecount-(2*N-3), pagecount-(2*N-3)-1

     說明一下:其中84,83等等這些數(shù)字,就是在page_1中,你對應(yīng)的str編號XXX

     說到這里可能大家就比較明白了,均速分頁法的原理實(shí)際是原來把頁面分好,在分頁的時候直接用頁面進(jìn)行拼接。這比每次分頁的時候從數(shù)據(jù)庫里直接調(diào)用數(shù)據(jù)再進(jìn)行分頁要來得省資源。
     同時,還可以說明一點(diǎn)的是,你完全可以不建立page_1表,而把這些str保存為HTML,然后在分頁的時候讀取出HTML頁面進(jìn)行拼接。

     3、數(shù)據(jù)的添加
     在傳統(tǒng)的HTML分頁中,添加新數(shù)據(jù)后,要把所有的HTML分頁重新生成一次,在均速分頁法中,就無需這樣。我們前面已經(jīng)設(shè)定了每個小頁面只顯示20條記錄,那么article_1表中,也只保存最多19條記錄。我們新添加一條記錄,那么同時把這條記錄加入到article_1中,如果article_1中的數(shù)據(jù)已經(jīng)超19,那么就把這里面的數(shù)據(jù)生成一個str,加上編號后保存在[page_1]里,當(dāng)然,如果你是用生成HTML的,你可以直接生成一個HTML。如果article_1中的數(shù)據(jù)已經(jīng)沒有超19,那么就不用管它了。


四、均速分頁法和傳統(tǒng)分頁的比較
     我用了兩千條數(shù)據(jù)的一個數(shù)據(jù)庫進(jìn)行測試,在XP系統(tǒng)下,P3 1G,256M內(nèi)存的硬件條件下,用均速分頁法平均速度在50MS,正負(fù)不超過10MS,用普通ADO分頁,速度在85MS,正負(fù)在20-35MS之間,可見用均速分頁法,在速度和穩(wěn)定性上都是不錯的。

     當(dāng)然,對于數(shù)據(jù)庫小的情況下,這樣的優(yōu)勢可能并不明顯,或者可能用ADO分頁來的更快,但是如果在兩萬條數(shù)據(jù)的分頁中,均速分頁法的平均速度是普通ADO分頁法的一半。

     當(dāng)然,均速分頁法也有自己的不足,比如程序復(fù)雜度比傳統(tǒng)分頁來的高,在數(shù)據(jù)庫少的時候性能不如ADO。


五、最后一點(diǎn)說明:
    本文主要介紹的是均速分頁法的一個原理,我花了一個晚上用程序進(jìn)行了實(shí)踐,是可行的。但我主要是把str生成HTML后讀取,與本文介紹的數(shù)據(jù)庫保存str有點(diǎn)不同,不過原理是一樣的。

    如果您有條件使用SQL數(shù)據(jù)庫,那么我建議您還是使用存儲過程來實(shí)現(xiàn)分頁的提速。

 




主站蜘蛛池模板: 婷婷丁香六月天 | 五月综合久久 | 四川农村女人一级毛片 | 日本三级带日本三级带黄国产 | 色综合久久综合欧美综合 | 亚洲国产精品免费观看 | 青青草好| 伊人影视在线观看日韩区 | 日本一区二区三区在线观看视频 | 四虎永久免费地址在线网站 | 日韩欧美亚洲一区 | 日本视频网址 | 色综合888| 日韩精品视频在线 | 在线观看亚洲网站 | 青青青久在线视频免费观看 | 青青在线免费观看 | 日韩 亚洲 翔田千里 在线 | 欧美性视频一区二区三区 | 日本精品高清一区二区2021 | 羞羞草视频 | 香港三级理论在线影院 | 亚洲成人自拍网 | 污污小视频在线观看 | 最近韩国中文字幕更新 | 又爽又黄无遮挡高清免费视频 | 亚洲欧洲精品国产二码 | 五月天婷婷免费视频 | 日日干夜夜操s8 | 欧美一级视频免费观看 | 亚洲欧洲国产精品你懂的 | 亚洲欧美日本在线观看 | 日韩手机专区 | 五月深爱网 | 青青干视频 | 热综合一本伊人久久精品 | 午夜免费观看_视频在线观看 | 五月婷婷丁香色 | 热综合一本伊人久久精品 | 天天色综合色 | 亚洲视频综合 |