java 板


LINE

圖文版刊於: http://www.wretch.cc/blog/hougzou&article_id=4820636 談到分頁這個問題,其實算是個討論到爛的設計,目前說法大抵可分「一次讀完」,與「 建立索引」 這兩派。 一次讀完再慢慢地分,簡單來說就是一口氣將資料庫的屬於該邏輯的所有資料讀到記憶體 中,再依使用者所要求的區間來呈現資料表內容。這方法的好處是可以降低平均整體查詢 資料庫的時間,也就是降低與資料庫之間存取的頻率。而缺點就是必須提供大量的記憶體 來儲存整個資料表內容,而且不能即時反應資料庫的變化。 建立索引的方式則是取得資料庫的資料表內含的索引,再讓使用者依照分頁索引來查詢出 資料庫內的資料表該區間的資料。這方法的好處是僅需在記憶體內提供一些位置給使用者 做資料表更新與索引表物件,缺點就是對資料庫的存取頻率較高,連結資料庫的動作所消 耗的時間較多。 當然,有些額外的手段可以使資料庫查詢的動作簡化,就好比說是Connection Pool,這 幾乎可以讓建立連結的時間忽略不計,而只需考慮到資料庫本身處理SQL語法的速度。但 仍有些部分是無解(也不能這麼說,因為阿扁言:能用金錢解決的問題就不是問題。), 那就是記憶體的使用量。 正因為金錢的來源是大問題,所以實際上要設計分頁還是要回歸使用者的使用習慣和查詢 功能。若使用者的查詢習慣是只看前幾筆最新的內容,則一次讀完的方式顯然太浪費記憶 體。又若使用者的習慣是將所有每筆資料逐筆查詢做運算,則建立索引的方式就顯得無用 武之地。 既然使用者的習慣捉摸不定,那麼設計者就應要在介面上來隱性導引使用者習慣。好比說 頁面僅呈現該區間資料的簡略屬性,若需要詳細資料,可再繼續按下按鈕調出詳細的屬性 。而要調閱及時反應的最新資料,僅需使用者按下了分頁的第一頁,整批索引便立即更新 ,即可調閱最新一批資料。這些都是目前各開源的討論區作法的一部份。 而如今,有賴於AJAX的流行,我們更可以將所有資料作更分散式的取得,讓使用者有者近 似於「一次讀完」的速度,又可以達到「建立索引」的記憶體節約。 http://pic22.pic.wretch.cc/photos/22/h/hougzou/4/1333974463.jpg
上圖的分頁內容為使用「建立索引」的方式來呈現,搭配了Connection Pool之後,分頁 的速度也頗為迅速。由於此服務的使用者習慣為檢閱最新資料以及指定時間區間的資料, 因此在資料呈現上提供了最新十筆資料,並在右下角要求使用者一頁頁往前翻查,再不然 也可以使用日期輸入器指定日期區間來做查詢。 http://pic22.pic.wretch.cc/photos/22/h/hougzou/4/1333974464.jpg
接著,若按下了事件旁的按鈕,則會啟動AJAX function,將指定的單筆資料撈回做處理 。由於不用換頁,因此此分頁的內容無須在重新reload,也無須重新查詢一次整個頁面的 事件數。 即使系統忙碌,使用者也可藉由讀取中的小icon來得知目前正在等待事件事件 內容資料,而目前一般討論區的閱讀文章,看著瀏覽器底下的進度欄緩慢地前進,頁面空 白一片,不知所謂。 http://pic22.pic.wretch.cc/photos/22/h/hougzou/4/1333974465.jpg
當然,若要更狠一些,還可以將整個頁面都以JavaScript配合XMLHttpRequest來呈現出來 ,但我想那已經已經算是「純」Web 2.0 網站(Beta都應該還不算是吧!)的範圍了吧。 PS: 「純」web 2.0,我想每個人心中都有一把尺,我認為像是Google ig、start.com、 以及Windows Live Mail beta 的純度應該比Yahoo奇摩那些大得多。 -- No Dying Skills, ● - Dame! New tech... but Lazy Users. .\) http://www.wretch.cc/blog/hougzou ___________ ﹒ ︵ √\ ___________________ --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.129.165.41







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP