有没有办法在不使用setInterval的情况下检查数据库中的新更新?问题是我想更新视频标签中的视频源,但如果我每秒都检查一次更新,那么我的视频会不断刷新。我只是想在数据库更新时刷新视频。例如,如果我在数据库的current_video列中有cat视频,则应播放cat视频。否则,如果我将视频更新为狗视频,则视频元素才会更改为狗视频。
$.get("/musicmania/playing/getCurrentSongDir", function(data, status){
setInterval(function(){
$("#video").html("<source src='/musicmania/app/resources/"
+ data + "' type='video/mp4'></source>");
}, 500);
});
答案 0 :(得分:1)
您可以添加if语句并检查旧数据和新数据是否不相等,然后刷新视频。 您的代码看起来像这样。
var old_data='';
$.get("/musicmania/playing/getCurrentSongDir", function(data, status){
if( old_data != data ) {
$("#video").html("<source src='/musicmania/app/resources/"
+ data + "' type='video/mp4'></source>");
}
old_data = data;
});
如果您想通过ajax技术进行操作,则必须每隔'x'秒发送一次请求。但还有另一项名为websockets的技术。 如果您不希望每隔“x”秒打开与服务器端的连接,则可以使用websockets。