【问题标题】:How to loop sort data coming from ajax calls after data has already been fetched through ALL pages?在通过所有页面获取数据后,如何循环排序来自 ajax 调用的数据?
【发布时间】:2021-04-29 23:35:12
【问题描述】:

我无法通过循环对数组进行排序。它每 20 个元素部分起作用(逐页排序)。

是否可以循环浏览网站中的所有页面?

大约需要 10 次 Ajax 调用才能获取所有数据(2000 项)。

在下面的代码中,我的查询通过 Ajax 获取数据,它工作正常:

<script language="javascript">
var current_page = 1, count = 100;

$(function(){
setTimeout(function(){
    newSearch();
}, 0);
});

function newSearch() {
count = 0;
current_page = 1;
$('#main').html('');
doSearch();
}

function doSearch(){
 $.ajax({
    
 url:'https://live.ksmobile.net/live/boys?'  
 data: {
        page_size: 900,
        page_index: current_page
    },
    cache: false,
    type: 'GET',
    dataType: 'json',
    success: function(r){

        var max = $('#limit').val();
        if (r.data.video_info.length < max) max =r.data.video_info.length;

        for (index = 0; index < max; index++) {
            var entry = r.data.video_info[index];
            
                            var level = parse Int(entry.level);

            if ((level > $('#min').val()) && (level < $('#max').val())) {
              count++;
              var HTML = '<div class="entry ' + '"><h="' + entry + '">';
              HTML += '<h3>Level: <span>' + entry.level + '</span> <span>' + entry.name + '' + '</span>id:<span>' + entry.heat;
              HTML += '</div>';
              $('#main').append(HTML);
              
     
                

以下排序功能的问题,它仅适用于每个页面,而我需要在主页中按(级别)对所有元素进行排序。

function arr(a,b) {
  return parseInt(a.level, 10) - parseInt(b.level, 10);
}
r.data.video_info.sort(arr);

}
if ((current_page < 100) && (count < $('#limit').val() )) {
            current_page++;
            setTimeout(function(){
                doSearch();
            },0);
        }

    }
});
}

我想将网站的所有页面(已排序)显示为我主页的一部分。 非常感谢您的帮助。

【问题讨论】:

标签: javascript arrays ajax sorting for-loop


【解决方案1】:

不应在 javascript 中对分页数据进行排序。您需要编辑后端查询以从那里对其进行排序。此外,只为排序而获取所有页面的数据是一个非常糟糕的主意,因为它会破坏分页的目的,并且会给您的 API 调用造成巨大的延迟,尤其是在您要获取大量数据的情况下。

【讨论】:

  • 有很多方法可以解决这个问题,但它需要在 javascript 中对 ajax 中的数组进行排序的经验,检查链接 wordpress.stackexchange.com/questions/266141/… 但我没有经验,所以我需要一些帮助。
  • 不确定 Ajax 与任何排序有什么关系,以及为什么您认为它与排序有关。它所做的只是调用一个 API 并对返回的数据做一些事情。此外,您引用的链接是在谈论网页,而不是分页数据页面
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2018-06-03
  • 2020-12-01
  • 2018-06-20
相关资源
最近更新 更多