困惑于我应该从哪里开始分页{$.getJSON,php image array}

Confused about where I should start with pagination {$.getJSON, php image array}

本文关键字:getJSON php image array 分页 我应该 开始      更新时间:2023-09-26

以下是我的代码现在的设置方式:

  • 用户访问页面上的某个链接

  • $.getJSON向php脚本发送请求

  • php调用scandir()为图像的名称创建一个数组(最终为100s-1000个,但现在只有几个用于测试,因此需要添加分页)

  • echos a json编码阵列

  • $.each项目用于创建一个字符串变量,该变量是一个新的标签

  • 将字符串变量前置到div容器,该容器是图像的内联显示

以下是我要做的:

  • 一次有50个项目加载ajax

  • 弄清楚如何使用$.each,使其与50项需求一起工作

  • 想出一种不同的方法来使用$.getJSON,这样就不会同时请求所有xxxx数量的图像

我的问题:

  • 如何让只在javascript事件顶部发出一次的请求在用户点击这些页面的整个过程中保持活动状态

Php从scandir创建数组似乎不是问题。。。也许一次返回整个数组是个问题,但我不知道如何创建一个循环,等待用户请求(单击"next"或"prev")迭代到数组中接下来的50个图像。

我想最好的工作地点应该是在$.each之前或内部,以某种方式使用一个循环来等待下面的ajax请求来创建接下来的50个标签,并将它们预先发送到。

这是代码:

     requestServer('ajax.php', flag);
            $('#Container').fadeIn('slow');
            $('.close_button').click(function() {
                $('#Container').fadeOut('slow');
                $('#welcome').fadeTo('slow',1);
                $('#i1,#i3,#i5').click(clickFade).mouseover(mouseOverFunc);
                $('#welcome').css({'position':'absolute','z-index':'10'});
            });
            flag = false;
            break;
    function requestServer(file, run_flag) {
        if (run_flag === true) {
            $.getJSON(file, function(data) {
                $.each(data, function(key, val) {
                    var html = "<img src='../images/"+val+"' style='display:inline' alt=null />";
                    $('#Container').prepend(html);
                });
            });
        }
    }

<?php
    $images = scandir('../includes/scrapedImages/');
    foreach ($images as $key => $image) {
        if ($image == '.' || $image == '..') {
            unset($images[$key]);
        }
    }
    echo json_encode($images);
?>

在每次请求时扫描映像目录似乎很浪费。

就我个人而言,我会编写一个PHP脚本,每X分钟扫描一次目录(或者在图像上传时调用)。让它将其编码为JSON,并将输出保存为服务器上某个位置的.json文件。

在客户端,$.get那个JSON文件。创建50个图像元素,并将它们的.src设置为从JSON文件中检索到的URL。在页面底部有一个前进/后退按钮,可以将这50个图像元素.src重新设置为下一个/上一个集。

或者,您也可以在DOM之外创建一个img元素,然后设置interval以每隔Z毫秒更改该元素的.src。浏览器将下载图像,即使它们没有附加在DOM中,并且这些加载的图像将被缓存。

祝你好运:)