暂停HTML5音频,同时AJAX返回中的元素仍然可见

时间:2018-08-12 11:26:19

标签: javascript jquery ajax html5-audio

我有一个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

我需要做什么,我可以在服务器仍在处理的同时使用其他技术来停止声音吗?

希望,如果没有让我知道,这是有道理的,我会进一步解释,并提前致谢。

0 个答案:

没有答案