我有一个HTML页面,该页面会轮询连接到数据库的PHP脚本,以查看是否接收到任何新项目(新项目标记为 NEW ),如果存在,则元素{{1} }发送到浏览器,以便可以播放声音:
#audio
});
$(document).ajaxComplete(function() {
if ($('#audio').length) {
$('#sound').get(0).play();
}
位于页面的HTML中,因此如果返回#audio并将项目标记为NEW,则会播放声音。
轮询会返回特定时间范围内的所有项目,因此可以返回 OLD和NEW 项目,这就是为什么如果有标记为NEW的我会附加#sound
来发出声音的原因。
播放声音后,用户可以使用update.php按下按钮以将DB中的NEW状态更新为OLD,同时暂停声音。
#audio
现在我遇到的问题是,尽管这可行,但是有时服务器中更新的延迟(从NEW到OLD)会导致声音播放,因为$('body').on('click','.acc',function() {
$('#sound').get(0).pause();
var itemID = $(this).data("id");
{
$.post("update.php",
{
id: itemID
},);
}
});
仍然存在。
我也尝试隐藏单击元素,但效果仍然相同,即在更新过程中仍返回#audio
。
我需要做什么,我可以在服务器仍在处理的同时使用其他技术来停止声音吗?
希望,如果没有让我知道,这是有道理的,我会进一步解释,并提前致谢。