gpt4 book ai didi

javascript - 当另一个用户更新 mysql 中的表时,我可以在不使用 setInterval() 函数的情况下触发 javascript 函数吗

转载 作者:行者123 更新时间:2023-11-30 23:52:38 25 4
gpt4 key购买 nike

你好,

现在我正在使用 setinterval 函数每 200 毫秒检查一次 mysql 数据库是否有变化,以确保 html 和 javascript 中的播放列表的顺序和歌曲仍然是最新的。

一旦用户更改顺序,或添加歌曲或从 mysql 的播放列表表中删除歌曲,我希望 javascript 函数仅在进行更改时运行,而不是每秒 ping 我的服务器 5 次。

现在我使用这段代码:

setInterval(function() {

contact();

},200)

接触的地方是这样的

function contact() {
getPlaylist()
getInstructions();
setStatus();

}


function getInstructions() {

var url = BU+'player/instructions';
$.getJSON(url, function (data) {
for(var i in data) {
execute(data[i]);
}
});
}
function execute(instruction) {

switch(instruction.Name) {

case 'Next':
nextSong();
break;
case 'PP':
togglePlay();
break;
case 'Back':
back();
break;
case 'Seek':
setProgress(parseFloat(instruction.Value));
break;
case 'Setpsong':
setPlaylistsong(parseFloat(instruction.Value));
break;
}


}




function getPlaylist(edit,force) {
if(typeof(force) == 'undefined') {
force = false;
}
var url = BU+'player/playlist';
var res = false;
$.ajax({
url: url,
dataType: 'json',
async: false,
success: function (data) {

if(force || typeof($('.playlistitems').attr('data')) == 'undefined' || (new Date(data.timestamp) > new Date($('.playlistitems').attr('data')))) {

res = renderPlaylist(data,edit);

}
},

}).fail(function() {

if( $('.playlistitems .song').length > 0) {
$('.playlistitems').html('');
}
});

return res;
}

如您所见,如果有 100 个用户使用此程序,流量将会很大。我真的很想使用一种仅在进行更改时触发的方法,而不是在进行更改时每秒检查 5 次。

这可能吗?

最佳答案

Yes Possible 当用户对数据库执行添加、编辑、删除等操作时,将调用回调函数。

关于javascript - 当另一个用户更新 mysql 中的表时,我可以在不使用 setInterval() 函数的情况下触发 javascript 函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com