Javascript 在文件夹中动态添加图像的幻灯片放映
我需要开发一个网页,将只做一个文件夹中的图像幻灯片 下面是我的用例-Javascript 在文件夹中动态添加图像的幻灯片放映,javascript,node.js,html,Javascript,Node.js,Html,我需要开发一个网页,将只做一个文件夹中的图像幻灯片 下面是我的用例- 我的电脑里有一个文件夹,里面有一些图片,我需要用幻灯片放映这些图片 我可以动态地将更多图像添加到此文件夹 现在,假设第1点中所有图像的第一次幻灯片放映已完成,并且在第一次幻灯片放映期间文件夹中添加了新图像,那么第二次迭代应首先显示动态添加的图像,然后再次开始所有图像的幻灯片放映 例如,如果我在一个文件夹中有10个图像,并且这10个图像的幻灯片正在进行中,那么现在在该文件夹中又添加了2个图像,并且图像总数为12。 在这种情况下,
...
//侦听文件夹更改
var socketIO=io.connect();
//Fire server Socket.io事件“订阅文件夹更改”
emit('subscribe folder change');
//注册到服务器Socket.io事件“文件夹更改”(签入演示服务器/app.js)
socketIO.on('folder changed',函数(folderFiles){
var files=JSON.parse(folderFiles);
log('文件夹转换器,文件夹中的文件',文件);
});
// Main app
var express = require('express');
var app = express();
...
// Main http server listen
var http = require('http').Server(app);
...
// Websocket
var io = require('socket.io')(http);
// FileSystem (? better to use chokidar ?)
var fs = require('fs');
// On client connection, subscribe to event
io.on('connection', function(socket){
// Register a socket.io server event 'subscribe'
socket.on('subscribe folder change', function() {
socket.username = 'test_user';
socket.room = 'folder-change';
socket.join('folder-change');
console.log('subscribe folder change event');
});
});
var fsTimeout;
// Watch folder
fs.watch('folderToScan', function (event) {
if (!fsTimeout) {
// Read folder
fs.readdir('folderToScan', function(err, files){
if (err) throw err;
console.log('emit event folder change', files);
// Emit a socket.io folder changed ('folder-change' = room)
io.sockets.in('folder-change').emit('folder changed', JSON.stringify(files));
});
// Give 3 seconds for multiple events
fsTimeout = setTimeout(function() { fsTimeout = null; }, 3000);
}
});
<script src="path/to/node_modules/socket.io-client/dist/socket.io.js" type="text/javascript"></script>
...
// Listen for folder change
var socketIO = io.connect();
// Fire server Socket.io event 'subscribe folder change'
socketIO.emit('subscribe folder change');
// Register to server Socket.io event 'folder change' (check in demo-server/app.js)
socketIO.on('folder changed', function(folderFiles){
var files = JSON.parse(folderFiles);
console.log('Folder changer, files in folder', files);
});