用datable或只mongoose表分页

我试图用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, }); }); }); }) 

并在我的玉档我有这样的:

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

它工作得很好,我只发送了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的所有元素

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

谢谢。

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

方法2,加载所有东西,只是长期不能运行,太多的数据加载。

方法1,没问题,但是我会把两者混合在一起。 DataTable服务器端,如上所述。