Javascript 使用jQuery分页xml结果的最佳方法是什么?

Javascript 使用jQuery分页xml结果的最佳方法是什么?,javascript,jquery,xml,ajax,pagination,Javascript,Jquery,Xml,Ajax,Pagination,我使用jQuery从MySQL数据库中以xml形式获取结果。将结果分页的最佳方式是什么 现在,我的脚本获取xml并将每个结果作为元素附加到元素 我猜这与创建一个全局变量有关,该变量通过运行要删除的脚本的“下一页/上一页”按钮进行更改,然后重新附加正确的结果范围,但我不太确定。您不应该使分页依赖于Javascript,而应该在服务器端完成。例如,服务器可以返回类似于的“下一个”链接。脚本将取该变量50并返回50个下一个结果,然后该链接将作为results.php?entry=100返回。您可以将其

我使用jQuery从MySQL数据库中以xml形式获取结果。将结果分页的最佳方式是什么

现在,我的脚本获取xml并将每个结果作为
  • 元素附加到
    元素


    我猜这与创建一个全局变量有关,该变量通过运行要删除的脚本的“下一页/上一页”按钮进行更改,然后重新附加正确的结果范围,但我不太确定。

    您不应该使分页依赖于Javascript,而应该在服务器端完成。例如,服务器可以返回类似于
    的“下一个”链接。脚本将取该变量50并返回50个下一个结果,然后该链接将作为
    results.php?entry=100
    返回。您可以将其与Ajax集成,这样结果将在不刷新页面的情况下返回,但是分页本身仍将在后端完成。

    我会这样做

    var numRows = $table.find('tbody tr').length
    
    var numPages = Math.ceil(numRows / numPerPage)
    
    var $pager = $('</p><br>
    
    <div class="pager"></div>
    
    ')
    
    for (var page = 0 page < numPages page++) {
    
    $('<span class="page-number">' + (page + 1) + '</span>')
    
    .appendTo($pager).addClass('clickable')
    
    }
    
    $pager.insertBefore($table) 
    
    var numRows=$table.find('tbody tr').length
    var numPages=Math.ceil(numRows/numPerPage)
    var$pager=$('


    ') 对于(变量页=0页
    ,但你走对了方向。在执行删除/重新附加操作时,请执行$('#mydiv').load('/path/to/myfile.php')。将开始点和停止点传递给文件,它们将作为阵列中的点,从中获取数据

    function paginate(start, limit) {
        // Maybe show a preloader?
        $('#loader').show();
    
        $("#mydiv").load("/path/to/myfile.php", {start: start, end: limit}, function(){
           // hide preloader or do other code here
            $('#loader').hide();
         });
    }
    

    您是一次性获得整个结果集(所有页面),还是一次获得一个页面?在任何情况下,您都应该保留从服务器接收的数据的本地缓存,并在用户导航页面时使用该缓存。例如,如果您一次检索一个页面,并且用户从第1页转到第2页,那么您需要从服务器检索第2页。但是如果用户现在返回到第1页,那么您应该从缓存中加载该页面。如果用户转到第3页,那么您应该从服务器获取该页面并将其添加到缓存中

    接下来,我将分离向用户显示单个页面和从服务器获取页面的逻辑。当用户单击下一页按钮时,您应该向缓存对象询问下一页,但不要返回任何内容。相反,缓存一旦有数据就会调用回调函数。如果数据在缓存中,它将立即调用回调函数,并将结果作为参数传递。然后,回调函数将更新呈现给用户的视图。如果数据不在缓存中,则向服务器发出该数据的ajax请求。一旦检索到数据,就会调用回调函数


    我通常反对将xml与ajax结合使用(我更喜欢ajaj;异步JavaScript和JSON。大声说出来也更有趣)。JSON是一个更好的选择,因为它在JavaScript中更容易使用,占用的内存和传输空间都更少。因为JSON对象是普通的JavaScript对象,所以将它们添加到本地缓存就像连接两个数组一样简单(您已经拥有的缓存和从服务器检索到的新元素)

    您是要使用更多ajax更新结果,还是一次获取结果并对结果进行分页?我一次获取所有结果并将其存储在一个对象中。因此,我只计划对每个PageLoad进行一次ajax调用,但这是一个个人项目,因此我不关心javascript的启用/禁用或浏览器兼容性。我想看看我能用javascript/JQUERI做些什么。我在用汉字,你能用JSON吗?我在考虑JSON,但不确定它是否适用于中文。我90%肯定它适用。JavaScript支持unicode,所以JSON也应该支持unicode。了解这一点非常有用。谢谢