javascript - 關於nodejs做文章分頁的方式,怎麼取得到翻頁的總數值?
<code>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}); }); }); }); </code>
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模板引擎。
回覆內容:
<code>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}); }); }); }); </code>
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模板引擎。
sql select的時候是可以使用count的,自己查一下相關用法吧。
總數得佔用一條sql,用select count(*) from news_base 取得總數吧。
顯示上兩次SELECT實際上只查詢一次的方法
<code>SELECT SQL_CALC_FOUND_ROWS * FROM apps limit 2,6; SELECT FOUND_ROWS();//在得到数据后,通过FOUND_ROWS()可以得到不带LIMIT的结果数: </code>
但是SQL_CALC_FOUND_ROWS在速度上會比COUNT(*)慢~
如果沒有過濾條件 可以把列表總數單獨存下來 內存緩存一下後隨列表吐出。
可以首次進入頁面時候發出兩個請求:一個請求總數量,一個請求limit行。
總數量記錄在頁面中。
之後翻頁的話只發第二個請求即可。
只需要總數量的情況也是存在的,應該考慮單獨開發這個介面。
如果不考慮初次載入網路開銷大的問題的話,可以直接全部拉到本地,在客戶端做分頁。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

IIS和PHP可以兼容,通過FastCGI實現。 1.IIS通過配置文件將.php文件請求轉發給FastCGI模塊。 2.FastCGI模塊啟動PHP進程處理請求,提高性能和穩定性。 3.實際應用中需注意配置細節、錯誤調試和性能優化。

HTML5和H5沒有區別,H5是HTML5的簡稱。 1.HTML5是HTML的第五個版本,增強了網頁的多媒體和交互功能。 2.H5常用於指代基於HTML5的移動網頁或應用,適用於各種移動設備。

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

Java的平台獨立性是指編寫的代碼可以在任何安裝了JVM的平台上運行,無需修改。 1)Java源代碼編譯成字節碼,2)字節碼由JVM解釋執行,3)JVM提供內存管理和垃圾回收功能,確保程序在不同操作系統上運行。

HTML5是超文本標記語言的最新版本,由W3C標準化。 HTML5引入了新的語義化標籤、多媒體支持和表單增強,提升了網頁結構、用戶體驗和SEO效果。 HTML5引入了新的語義化標籤,如、、、等,使網頁結構更清晰,SEO效果更好。 HTML5支持多媒體元素和,無需第三方插件,提升了用戶體驗和加載速度。 HTML5增強了表單功能,引入了新的輸入類型如、等,提高了用戶體驗和表單驗證效率。

HTML5的核心特性包括語義化標籤、多媒體支持、離線存儲與本地存儲、表單增強。 1.語義化標籤如、等,提升代碼可讀性和SEO效果。 2.和標籤簡化多媒體嵌入。 3.離線存儲和本地存儲如ApplicationCache和LocalStorage,支持無網絡運行和數據存儲。 4.表單增強引入新輸入類型和驗證屬性,簡化處理和驗證。
