服务器端与tablesorter的分页

使用tablesorter的寻呼机插件可以实现服务器端分页吗?看起来默认选项要求您一次将所有行加载到浏览器的内存中.由于我有这么多记录,这实际上是不可能的,我宁愿一次加载一页. tablesorter寻呼机插件是否支持此功能?如果是这样,我错过了什么,因为文档显示了这个例子:

// process ajax so that the data object is returned along with the total number of rows
    // example: { "data" : [{ "ID": 1, "Name": "Foo", "Last": "Bar" }], "total_rows" : 100 }
    ajaxProcessing: function(ajax){
      if (ajax && ajax.hasOwnProperty('data')) {
        // return [ "data", "total_rows" ];
        return [ ajax.data, ajax.total_rows ];
      }
    },

那个,以及我能够找到的其他例子,看起来像是在ajax处理函数中将所有行一次加载到内存中.

http://mottie.github.com/tablesorter/docs/example-pager.html

更新:

http://mottie.github.com/tablesorter/docs/example-pager-ajax.html看到AJAX寻呼机后,我还有几个问题:

> sortList = [[2,0],[3,0]].在Ajax URL中,我是否自己转换为& col [2] = 0& col [3] = 0的实际格式?
> ajaxProcessing的文档说:

处理ajax以便返回以下信息:
// [total_rows(number),rows(数组数组),headers(array; optional)]

看起来total_rows是数据库中的行数,而不是浏览器内存中的行数或表中显示的行数.那是对的吗?下一个问题:我理解“行”数组数组的格式.但实际上哪些行应该在其中呢?文档说它是“所有行”,但它只是表中显示的当前行页面?到目前为止用户已经分页的是所有行吗?我假设它不是数据库中的所有行,因为这会完全破坏这一点.

最佳答案 要包含排序列和方向,只需在url模板中的示例中包含服务器端变量col:

ajaxUrl : "http:/mydatabase.com?page={page}&size={size}&{sortList:col}&{filterList:fcol}",

{page}是用户正在查看的当前页面,{size}是要在浏览器中显示的行数.

包括& {sortList:col}(使用与服务器端变量匹配的col用于排序列和方向)以包括排序.并包括& {filterLost:fcol}(使用fcol匹配服务器端varibale以过滤列)以包含任何过滤.寻呼机插件将字符串格式化为& col [2] = 0& col [3] = 0(或其他).

如果你看一下ajaxProcessing函数,它所做的就是重新格式化当前行集的服务器中的ajax数据,以显示(而不是所有行)以匹配这个所需的格式:

// process ajax so that the following information is returned:
// [ total_rows (number), rows (array of arrays), headers (array; optional) ]
// example:
[
  100,  // total rows
  [
    [ "row1cell1", "row1cell2", ... "row1cellN" ],
    [ "row2cell1", "row2cell2", ... "row2cellN" ],
    ...
    [ "rowNcell1", "rowNcell2", ... "rowNcellN" ]
  ],
  [ "header1", "header2", ... "headerN" ] // optional
]

如果数据库中有不确定的行数,则只返回0 …它仍然可以工作,但是totalPages和totalRows变量将是不准确的.

点赞