對>的不足與修正建議

來源:互聯網
上載者:User
對<<在ASP中改善動態分頁的效能>>的不足與修正建議

呵呵,可以進精華區嗎?用了我一天的時間。
兩位張兄的<<在ASP中改善動態分頁的效能>>一文給我很大的啟發,在此表示感謝,但在我想來還是有一些不足的地方。

一是無法反應一些隨更新的資訊。
    加設現為一BBS,那麼隨時更新的資訊有
    每個貼子的點擊
    新加貼子的資訊,這些在兩位張兄兄的方案中無法自動更新,只有使用者在更改查詢時才能使用。

二是記憶體使用量太多,事實上對於一個論壇來講,大多數人還是按順序來訪問的,沒有必要每個人一個session。

三是處理資料時不方便
  只能用數組的方式來進行,不直觀,可讀性差。


對於以上幾點,我提出如下改進方案
一 使用application, 可做到多人共同使用同一資料
二 只存入和取出ID號,其它資料做第二次select
三 自動刪除過時的application 以節約記憶體.
四 在添加和刪除資料時,重新匯入資料

其它好處
呵呵,可以使用getstring()了,原來分頁時不行的
可以不用1,3了,

代碼如下

a_page.asp
-----------------------------------------------------------------'
<%
dim apage_pagesize    '每頁記錄數
dim apage_Count        '總計記錄數
dim apage_PageCount    '總頁數
dim apage_PageForm    '跳頁用的Form
dim apage_PageUrl    '上一頁下一頁的連結
dim apage_timeout    '到期時間設定(秒)

apage_timeout=300    '到期時間設定(秒)
apage_pagesize=20    '

function apage_bactive (str_name)    '判斷是否有這個對象,並刪除到期對象
    apage_bactive=false
    dim item, s_temp
    for item=1 to Application.contents.count '找出所有的Application
        s_temp=Application.contents(item)
        if isarray (s_temp) then
            if ubound(s_temp)=3 and s_temp(0)="apage" then
                if s_temp(1)=str_name then
                    apage_bactive=true                '要求對象存在
                else
                    if DateDiff("s",s_temp(2),now())>apage_timeout then '刪除過其對象
                        Application.contents.remove(item)
                    end if
                end if
            end if
        end if
    next
end function  'b_inuser

sub apage_open (str_name , str_table, str_id, str_sqlend)    '開啟對象並計算一些資料
        '對象名,    表名,     關鍵字名, 查詢條件
    dim a1, a_ob
    if not apage_bactive (str_name)    then            '如對象不存在則建立一對象
        apage_load str_name, str_table, str_id, str_sqlend
    end if
        a1=application (str_name)
        a1(2)=now()
        application.lock
            application (str_name)=a1
        application.unlock
        a_ob=a1(3)
        apage_Count=ubound(a_ob,2)+1
        apage_PageCount=int(apage_Count/apage_pagesize)+1
end sub'apage_open

function apage_get (str_name, page)                '得到本頁的所有id號
    dim a1, a_ob, i_stat, i_end, i1, str_actionurl , str_query , str_1, str_2
    '以下為保證page是正確的
    page=cint (page)
    if page <1 then page=1  &nb



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。