亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于nodejs做文章分頁的方式,怎么獲取到翻頁的總數值?

關于nodejs做文章分頁的方式,怎么獲取到翻頁的總數值?

MMTTMM 2019-03-29 19:19:47
router.get("/:page",function(req,res){    if(req.params.page == 0){        res.send("<div style='font-size:16px;font-weight:bold;color:red'>404</div>");    }    conn.query("select * from news_base",function(err,pdata){        conn.query("select * from news_base limit "+(req.params.page-1)*3+",3",function(err,data){            res.render("admin/list",{datas : pdata,pageDatas : data});        });    });});select * from news_base limit 這條sql是根據頁數獲取具體的數據??墒窃谇芭_頁面 我要做一個翻頁的 “上一頁 1.2.3.4.5 下一頁”的效果,那就要知道數據的總和才能計算。但是 select * from news_base limit 這個sql獲取不到數據的總和數。所以只好再寫一條sql “select * from news_base ” 這個就可以返回一個數組。然后通過length就可以拿到總數值來計算。但是兩條sql感覺很多余一樣。。感覺代碼很臃腫。。還有沒有更好的方法來實現翻頁的效果。前臺用的是ejs模板引擎。
查看完整描述

5 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

sql select的時候是可以使用count的,自己查一下相關用法吧。


查看完整回答
反對 回復 2019-04-22
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

總數得占用一條sql,用select count(*) from news_base 獲取總數吧。


表明上兩次SELECT實際只查詢一次的方法


SELECT SQL_CALC_FOUND_ROWS  * FROM apps limit 2,6;

SELECT FOUND_ROWS();//在得到數據后,通過FOUND_ROWS()可以得到不帶LIMIT的結果數:


但是SQL_CALC_FOUND_ROWS在速度上會比COUNT(*)慢~


查看完整回答
反對 回復 2019-04-22
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

如果沒有過濾條件 可以把列表總數單獨存下來 內存緩存一下后隨列表吐出。


查看完整回答
反對 回復 2019-04-22
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

可以首次進入頁面時候發出兩個請求:一個請求總數量,一個請求limit行。
總數量記錄在頁面中。
之后翻頁的話只發第二個請求即可。

只需要總數量的情況也是存在的,應該考慮單獨開發這個接口。


查看完整回答
反對 回復 2019-04-22
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

如果不考慮初次加載網絡開銷大的問題的話,可以直接全部拉到本地,在客戶端做分頁。


查看完整回答
反對 回復 2019-04-22
  • 5 回答
  • 0 關注
  • 1000 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號