gpt4 book ai didi

node.js - 使用 datatable 或仅使用 mongoose 进行表分页

转载 作者:太空宇宙 更新时间:2023-11-03 22:14:46 25 4
gpt4 key购买 nike

我正在尝试为包含 Mongoose 数据的表制作一个分页系统。其实我知道怎么做,但我想知道哪种方法最好:

方法1:仅使用 Mongoose

var perPage = 15
, page = req.param('page') > 0 ? req.param('page') -1 : 0
res.locals.createPagination = function (pages, page) {
var url = require('url')
, qs = require('querystring')
, params = qs.parse(url.parse(req.url).query)
, str = ''

params.page = 1
for (var p = 1; p < pages + 1; p++) {
params.page = p
clas = page+1 == p ? "active" : "no"
str += '<li class="'+clas+'"><a href="?'+qs.stringify(params)+'">'+ p +'</a></li>'
}
return str
}
Vente.find({})
.populate({ path: 'user_id', select: 'username server -_id'})
.limit(perPage)
.skip(perPage * page)
.sort({created_at: 'desc'})
.exec(function(err, ventes){
Vente.count({}, function(err, count){
res.render('index', {
page: page,
pages: count / perPage,
user: req.user,
items: ventes,
});
});
});
})

在我的 Jade 文件中我有这个:

if (pages > 1)
ul.pagination
!= createPagination(pages, page)

它工作得很好,我只向 jade 文件发送了 15 个元素。

方法2:使用数据表在我的 .jade 文件中,我只需添加:

script(type="text/javascript")
$(document).ready(function() {
$("#tab").dataTable();
});
script(type="text/javascript",src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js")

但是我必须将所有元素发送到我的 .jade

所以我的问题是:第一种方法更好吗?第二种方法可以让用户搜索更快,而且分页不需要刷新页面。

谢谢。

最佳答案

DataTable 非常酷(我个人使用它)。幸运的是,Datatable 有一种加载内容服务器端的方法,这很酷,因为你可以免费获得很多东西。可能只是稍微改变一下返回数据的方式即可。

方法 2,加载所有内容,从长远来看是行不通的,加载的数据太多。

方法 1 可以,但我会混合使用两种方法。 DataTable 服务器端,如上所述。

关于node.js - 使用 datatable 或仅使用 mongoose 进行表分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32612969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com