Jquery ajax如何更新html元素而不是每隔x秒监听更新?

时间:2016-02-04 19:09:44

标签: php jquery ajax

有没有办法在不使用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);
});

1 个答案:

答案 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。