在循环通过所述数组时更新定义数组的javascript文件?

在循环通过所述数组时更新定义数组的javascript文件?,javascript,slideshow,Javascript,Slideshow,我正在建立一个简单的网站,将显示像幻灯片一样的照片。照片会在不可预知的时间自动上传到服务器。目前,我每分钟都在运行一个cron作业,以生成一个javascript文件,其中包含一个数组形式的照片文件名列表。在网页上,我引用了这个文件,并一次一张地显示阵列中列出的照片。目前,这部分工作正常 我想让web页面定期检查定义数组的javascript文件在初始加载时抓取该文件后是否有任何添加。如果有添加,网页应该从列表的开头重新开始,并显示最新的照片 有没有一个简单的方法可以做到这一点 这是网页: &l

我正在建立一个简单的网站,将显示像幻灯片一样的照片。照片会在不可预知的时间自动上传到服务器。目前,我每分钟都在运行一个cron作业,以生成一个javascript文件,其中包含一个数组形式的照片文件名列表。在网页上,我引用了这个文件,并一次一张地显示阵列中列出的照片。目前,这部分工作正常

我想让web页面定期检查定义数组的javascript文件在初始加载时抓取该文件后是否有任何添加。如果有添加,网页应该从列表的开头重新开始,并显示最新的照片

有没有一个简单的方法可以做到这一点

这是网页:

<html><head>
<style type="text/css">
   body {background: black;} 
</style>         
<script src="imageList.js"></script>
<script type="text/javascript">

   function switchImage() {
      document.getElementById("body").innerHTML='<img id="main" src="photos/' + imageList[i] + '"/>';
      i++;
      if (i>=imageList.length) { i=0; }
   }

i=0;
setInterval(function(){switchImage()},45000);

</script>      
<title>SlideShow</title></head>
<body id="body">
</body>
</html>

我建议您每隔一段时间(比如每5或10分钟)使用ajax调用请求图像文件名。然后,如果列表不同,则将新文件名添加到当前列表中。这样更安全。但是,如果您想在没有服务器的情况下使用类似黑客的解决方案,您可以尝试使用数字文件名并对其进行迭代,直到有一个图像没有图像属性(高度/宽度…)或您可以使用的任何检测,然后您将计数器重置为0并继续。谢谢。我最终改变了脚本以生成一个xml文件而不是javascript文件,并且我使用ajax调用每隔几分钟获取一次xml文件。从xml条目中,我创建了一个javascript数组。但是,在创建数组之前,我会检查xml条目的数量是否与javascript数组中当前的条目的数量相同。不要使用xml,最好使用json文件。我相信你是对的,但我已经将其编码好了,并且目前运行良好!不过下次我会记住json。
#! /usr/bin/bash
printf "var imageList = new Array();\n" > /var/www/htdocs/example.com/imageList.js
count=0
for file in `ls /var/www/htdocs/example.com/photos/`;
do
   printf 'imageList[%s] = "%s";\n' $count $file >> /var/www/htdocs/example.com/imageList.js
   count=$(($count+1))
done