javascript - 使用 Javascript/jQuery 持续返回 ajax 结果?

标签 javascript jquery ajax search

我想知道是否可以使用 jQuery 的 ajax 函数不断地将结果返回到页面并进行相应更新。

我的意思是这样的: - 用户发起搜索 - jQuery 使用 ajax 函数获取前 25 个结果并将它们添加到表中。 - 当用户查看该列表时,jQuery 会一次持续抓取 25 个结果并将它们添加到表中。

其背后的想法是,假设您的用户搜索有 10,000 个结果。我想将它们加载到一个由 Javascript 控制分页的表中,这样我们就不必每次用户想要转到下一页时都返回到服务器。 用户查看前 25 个结果所需的时间,我们可能会加载接下来的 50 个结果,这意味着我们将拥有一个包含所有结果的非常简洁的界面。

这肯定有一些缺点: - 用户无法立即转到“最后” - 用户无法立即对表格进行排序(或者如果他们这样做,他们可能会立即得到一个未正确排序的表格)

不过,我认为这是一个有趣的想法,并且很想尝试一下......但我不知道从哪里开始。

如何让ajax函数继续运行直到出现某个结果?您能否将结果添加到表中并不断更改该表,而不会给用户带来糟糕的界面体验?

最佳答案

JQuery 提供了 $.post$.get$.ajax 的回调。因此,您可以编写一个函数来处理输入,并继续将函数作为回调提供,直到结果集加载完成。

如果用户确实尝试对表格进行排序或向下跳转结果列表,则表格将需要重置,并且下一个回调将需要检测排序/分页更改并将这些变量发送到服务器。

类似这样的事情:

var page_number= 1;
var sort_by= 'column_name';
var sort_direction= 'asc';

function handle_result(data) {
  // Do something with the result/return data from the POST
  ....
  // $.post again . . . when there are more rows
  if (data.has_more_rows) {
    page_number++;
    $.post('process.php', { page_number: page_number, sort_by: sort_by, sort_direction: sort_direction }, handle_result);
  }
}

// The initial post . . .
$.post('process.php', { page_number: page_number, sort_by: sort_by, sort_direction: sort_direction }, handle_result);

关于javascript - 使用 Javascript/jQuery 持续返回 ajax 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905030/

相关文章:

javascript - React Native Element 类型无效,需要一个字符串,但未定义

Javascript 不会设置在 XHR 响应中收到的 httpcookie

javascript - 全屏播放 Youtube iframe

javascript - codeigniter 或 PHP - 如何在特定的 AJAX POST 提交后转到 URL

ajax-datatables-rails 如何在ajax响应中添加按钮

javascript - 如何使用 Javascript 根据某些动态选择的值设置下拉列表的值?

javascript - JQuery - 如何在桌面和移动菜单之间传递事件类?

javascript - jquery在ajax中调用函数时this指针作用域

c# - 有人有使用 Telerik 的 RadGrid Paging 的经验吗?

javascript - x 秒后淡出模态框