0

我有一个 jQuery Ajax 调用,它传递输入的 sql 字符串并相应地返回数据行。因为这些可能是相当大量的数据,所以我将调用更改为跳过而不是。记录参数。这没关系,但我真正想要的是列出所有数据,因为一次调用可以返回大量数据,我希望可以将其拆分。

我想做的过程是:

  • Ajax 调用以处理数据并将行存储在某处
  • 返回前 25 行
  • 将 25 行添加到 div
  • 获取下一个 25
  • 将接下来的 25 行添加到 div
  • 等,直到没有更多的行添加

以前有没有人需要做这样的事情,或者对如何通过 Ajax 获取大量数据有任何建议?作为参考,我使用的是 ASP.Net WebMethod。

4

1 回答 1

1

您可以在 AJAX 回调函数中获取更多行。您只需要跟踪已经存在多少“页面”。

var options = { rows : 25, offset : 0, url : 'irrelevant' },
fetchRows = function(){
    $.get( options.url, { rows : options.rows, offset : options.offset  }, render );
    options.offset++;
},
render = function( data ){
  /* perform the rendering  here */

    if( data.length == options.rows ){ /* assuming `data` is an array of rows */
        fetchRows();
    }
};

fetchRows发送 AJAX 请求并设置render为回调函数。render如果先前的请求返回了一个“页面”上可以容纳的行数,则再次调用fetchRows(在此示例中,最后一页将有 < 25 行,因此无需继续获取)。

于 2013-01-13T22:11:32.393 回答