泥巴麒麟的BLOG

          shenAwesome@hotmail.com 縱不能,將醉做生涯,休拘束

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            195 Posts :: 2 Stories :: 80 Comments :: 0 Trackbacks

          displaytag確實(shí)有性能的問(wèn)題,最近又看到一個(gè)比較好的分頁(yè)列表控件,但同樣是每次分頁(yè)就重新提交整個(gè)頁(yè)面
          確實(shí)頭痛而且笨拙。真的不如用ajax來(lái)處理這個(gè)問(wèn)題

          如做一個(gè)tag,頁(yè)面上有:
          <s:list? columnMap="" request=""/>
          生成javascript的列表,完成后,立刻用ajax調(diào)用request中的請(qǐng)求,去得到列表值,顯示出來(lái)
          同時(shí)界面提供 上一頁(yè)下一頁(yè)等翻頁(yè)和排序按鈕,當(dāng)按鈕被點(diǎn)擊,同樣去用ajax重取數(shù)據(jù)

          有兩種方式
          1 請(qǐng)求通過(guò)一個(gè)servlet通過(guò)反射轉(zhuǎn)發(fā)到原始Action的方法上。
          在action中,除了一般的工作,另加若干如下方法:
          Collection showList(httpRequest request);
          對(duì)應(yīng)界面中的一個(gè)列表,專門(mén)負(fù)責(zé)處理列表。根據(jù)request里的信息(包括分頁(yè)和排序信息)返回適當(dāng)?shù)臄?shù)據(jù)
          2 直接新建一個(gè)單獨(dú)action處理

          有關(guān)分頁(yè)的計(jì)算,這里就不詳述,無(wú)非是獲得記錄總數(shù),從而計(jì)算出當(dāng)前頁(yè),并取得相應(yīng)數(shù)據(jù)。這里隨后臺(tái)不同而有不同實(shí)現(xiàn)。

          當(dāng)取數(shù)據(jù)的時(shí)候,由于ajax的異步性質(zhì),最好在界面上有些進(jìn)度條之類的提示。

          這樣整體方案其實(shí)并不復(fù)雜。美工上作漂亮些就行了,再支持一下數(shù)據(jù)導(dǎo)出。

          要提到的是,分頁(yè)的情況,如果數(shù)據(jù)不一次全部取出,而是利用數(shù)據(jù)庫(kù)的 order by等來(lái)進(jìn)行分頁(yè)排序,效率確實(shí)提高,但就需要穿透邏輯層,同時(shí)排序字段必須是數(shù)據(jù)庫(kù)sql中的原始字段。
          在邏輯層&DAO的處理上必須更仔細(xì),推薦采用一個(gè)PageBean攜帶所有的分頁(yè)信息(?查詢條件,排序字段/順序,當(dāng)前頁(yè)數(shù),總頁(yè)數(shù))? 。

          ?

          ?

          ?

          posted on 2007-03-13 10:27 泥巴麒麟 閱讀(174) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 出国| 郧西县| 东乌珠穆沁旗| 榆树市| 梅河口市| 佛山市| 河间市| 天气| 沙田区| 陆河县| 达拉特旗| 闽侯县| 哈尔滨市| 池州市| 长宁区| 泾源县| 兴山县| 临漳县| 仲巴县| 昂仁县| 夏邑县| 邮箱| 灵川县| 娄烦县| 丽水市| 湟中县| 台北市| 绥滨县| 望城县| 玉林市| 朝阳区| 龙胜| 伊金霍洛旗| 福泉市| 江孜县| 澄迈县| 三明市| 佳木斯市| 西乌珠穆沁旗| 东海县| 民乐县|