javascript - 从 csv 文件读取图像的分页

标签 javascript php jquery csv pagination

经过大量搜索后,我无法找到适合我的问题的带有分页的正确图片库。

我的网页显示大量图像(无限)作为图库。我已经应用了一些图片库插件。但是这个插件的问题是,在网页上加载太多图像需要花费大量时间,如果我直接转到应用了分页的最后一页,那么加载最后一页上的图像需要花费大量时间,因为它加载了所有图像在此之前的页面上。 延迟加载在这种情况下也没有帮助。

我使用 csv 文件显示图像,如下所示:

<ul id="itemContainer">
            <?php
            $file_handle = fopen("gallery.csv", "r");
            while (!feof($file_handle)) {
            $lines_of_text[] = fgetcsv($file_handle, 1024);
            }
            fclose($file_handle);
            foreach ( $lines_of_text as $line): 
            ?>
            <li>
            <a href="<?php print "photos/".$line[0].".jpg"; ?>" data-lightbox="imggallery" 
            data-title="<?php print $line[0]." ".$line[1];?>">
            <img src="<?php print "photos/".$line[0].".jpg"; ?>" alt="image" style="width:140px; height:140px; border: 1px solid #00C;">
            </a>
            </li>
            <?php endforeach; ?>      
      </ul>

为了解决这个问题,我尝试显示具有像 url?page=num_of_page 这样的 url 的分页图像,以便当前页面上的图像不会等待加载该页面之前的图像并获取加载速度更快。

但我不知道在这种情况下应该如何进行分页(像这样 url?page=num_of_page)?

请问有什么帮助吗?

最佳答案

// Open File to read
$file = fopen("gallery.csv","r");

    while(! feof($file))
    {
      // Store each line in $data
      $data[] = fgetcsv($file);
    }

    // Get Current Page
    $current_page = ($_GET['page']) ? $_GET['page'] : 1;
    // Records Per Page
    $per_page = 10;


    $start = ($current_page - 1) * ($per_page + 1);
    $offset = $per_page + 1;
    $total_pages = count($data) / $per_page;

    //Slice array according to our page
    $data = array_slice($data, $start, $per_page);

    ?>

    <ul id="itemContainer">
        <?php for($i = 0; $i < count($data); $i++) { ?>
            <li>
                <a href="<?php print "photos/".$data[$i][0].".jpg"; ?>" data-lightbox="imggallery" data-title="<?php print $data[$i][0]." ".$data[$i][1];?>">
                    <img src="<?php print "photos/".$data[$i][0].".jpg"; ?>" alt="image" style="width:140px; height:140px; border: 1px solid #00C;">
                </a> 
            </li>
        <?php } ?>      
    </ul>
    <?php
    // Show Total Pages
    for($i = 0; $i < $total_pages; $i++){
        echo '<a href="?page='.($i+1).'">'.($i+1).'</a>';
    }

希望它能发挥作用。

关于javascript - 从 csv 文件读取图像的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31376341/

相关文章:

javascript - Firefox SDK简单存储重启后关联数组数据丢失

php - 似乎无法使用数据库的 IP 地址使用 Zend Framework 连接到数据库

Jquery ajax() 处理 WCF 错误?

javascript - 使用 JavaScript/jQuery 调用 do_action

javascript - 在 JavaScript 中将动态局部变量添加到全局变量

javascript - 200滚动后jquery固定标题

javascript - 将数字与小数相除

php - Laravel-5.5 在 Null 错误上调用成员函数产品(多对多关系)

javascript - 检测用户点击 HTML 表格 TD,并获取值

Jquery - 从 SQLite 生成嵌套列表