如何限制xml文件中显示的12个图像,并自动为其他图像创建页面

how to limit 12 images displaying from xml file and automatically creating pages for the others

本文关键字:图像 其他 创建 文件 xml 显示 12个 何限制      更新时间:2023-09-26

我目前有一个xml文件,其中包含10000个链接到视频的图像,它们目前显示在一个页面上。因此,所有10000张图片都在一页上。我正试图得到它,使图像只显示其中的12页,然后自动创建许多页面的其余部分

这是获得图像的代码

<div id="container">
    <table id="demo"></table>
        <script>
    // Initialize
    (function() { 
        loadXMLDoc(); 
    })(); 
    function loadXMLDoc() {
      var xmlhttp = new XMLHttpRequest();
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          myFunction(xmlhttp);
        }
      };
      xmlhttp.open("GET", "amateur.xml", true);
      xmlhttp.send();
    }
    function myFunction(xml) {
      var i;
      var xmlDoc = xml.responseXML;
      var table="<tr></tr>";
      var x = xmlDoc.getElementsByTagName("video");
      for (i = 0; i <x.length; i++) { 
        var img = x[i].getElementsByTagName("thumbnail")[0].childNodes[0].nodeValue;
        var url = x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue;
        table += 
          "<a href='"+url+"'><img src='"+img+"'></a>";      
      }
      document.getElementById("demo").innerHTML = table;
    }
    </script>
</div>

这是XML文件的一个示例,它经过了轻微的编辑,因为不适合显示内容。XML文件被称为"业余.XML"

<?xml version="1.0" encoding="utf-8"?>
<videos>
<video id="1fb853907b9ca6add9ac">
<url>a.com</url>
<categories>A</categories>
<rating>100</rating>
<title>A</title>
<tags>A;a;AB</tags>
<duration>15</duration>
<thumbnail>http://i1.cdn2a.image.phncdn.com/m=eGcE8daaaa/videos/201011/03/148553/original/12.jpg</thumbnail>
</video>
<video id="d95ebc6a75c00d9926e7">
<url>http://ab.com</url>
<categories>A;B;An</categories>
<rating>100</rating>
<title>Sie spritzt ab</title>
<tags>a;b;as;d</tags>
<duration>65</duration>
<thumbnail>http://i0.cdn2a.image..phncdn.com/m=eGcE8daaaa/videos/201102/17/160998/original/12.jpg</thumbnail>
</video>
</videos>

在转到逻辑之前,你能把你的js代码放在页面的底部,如果可能的话,把它放在一个单独的js文件中吗?这是一个很好的做法。现在转到algo(我假设您的服务没有增量回报,即您将一次性获得10000+的结果)

  • xmlDoc.getElementsByTagName("视频");这个数组的长度会给出页面的总数,比如说长度是x,所以页面的总数是x/12
  • 您现在可以创建页码列表(1,2,….n)。您可以使用li标记或其他标记使用javascript for loop动态创建列表。在li中放置锚点标记以进行进一步的js页面更改操作。
  • 现在在for循环中创建一个对象数组。
  • 对于第一页,取前12个元素并创建12行。
  • 当点击第2页或其他页面时,您必须获取页码(可以从链接文本中获得),并且必须计算数组索引。(请记住,对于第2页,起始索引为12,结束索引为23,依此类推)现在清除现有行并添加新元素。简而言之,pageSize*(pageNum-1);
  • 对于表创建,您可以使用任何模板引擎(如Handlebar或其他)