可以轮询jQuery Ajax查询吗?

时间:2013-01-13 21:27:38

标签: jquery

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

我想要做的是:

  • Ajax调用处理数据并将行存储在某处
  • 返回前25行
  • 向div添加25行
  • 获取下一个25
  • 将下一行25行添加到div
  • 等,直到不再添加行

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

1 个答案:

答案 0 :(得分: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行,因此无需继续提取)。