Javascript ajax、jquery和html5声音

Javascript ajax、jquery和html5声音,javascript,jquery,ajax,html,audio,Javascript,Jquery,Ajax,Html,Audio,所以我在javascript、jquery或ajax方面的经验很少,但似乎我需要所有这些东西来完成我想做的事情 我有一个网站,每分钟都有一次全身置换。正文中有一个html5音频标签,如下所示: <audio id='sound'> <source src="test.mp3" type="audio/mpeg"> </audio> 一旦通过jquery刷新了整个主体,下面的ajax脚本我想播放这个音频标签 所以我想我设置了两个功能,一个重新加载站点,

所以我在javascript、jquery或ajax方面的经验很少,但似乎我需要所有这些东西来完成我想做的事情

我有一个网站,每分钟都有一次全身置换。正文中有一个html5音频标签,如下所示:

<audio id='sound'>
  <source src="test.mp3" type="audio/mpeg">
</audio>

一旦通过jquery刷新了整个主体,下面的ajax脚本我想播放这个音频标签

所以我想我设置了两个功能,一个重新加载站点,一个播放声音。但是,这不起作用,因为ajax是异步的。在刷新之前播放声音

我一直在阅读,似乎我需要回电来做我想做的事情。但是由于我对javascript、jquery和ajax都知之甚少,我迷失了方向

我必须使用这样的刷新,因为我不想因为连接错误而在找不到的站点或类似的地方结束

而且,在我看来,我的全身置换可能需要一些工作,因为使用这样的正则表达式似乎太过分了

最后一个连接块只是一个小的彩色块,在这里我可以看到网站的最后状态

<script type="text/javascript">
    function update_site() {
        $.ajax({
            url: "/test",
            dataType: "html",
            cache: false,
            success: function(data) {
                // Replace body with loaded site. You can do more checks here to check
                // if the fetched content is all there.
                var body_html = data.replace(/^[\S\s]*<body[^>]*?>/i, "")
                        .replace(/<\/body[\S\s]*$/i, "");
                $('body').html(body_html);
                $('.last_connect').css('background-color', 'blue');
            }, 
            error: function(data) {
                $('.last_connect').css('background-color', 'red');
            }
        });
    }
    function play_snd() {
        $('.last_connect').css('background-color', 'yellow');
        $('#sound').trigger("play");
    }
// Run every 20 secs.
window.setInterval(function() {
    update_site();
    play_snd();
}, 4000);
</script>

函数更新_站点(){
$.ajax({
url:“/test”,
数据类型:“html”,
cache:false,
成功:功能(数据){
//用加载的站点替换正文。您可以在此处执行更多检查以检查
//如果提取的内容都在那里。
var body_html=data.replace(/^[\S\S]*]*?>/i,“”)

.replace(/是的,我知道它们是不同的,只是一个输入错误,现在已经修复好了,很公平。再次,祝你好运!为什么不把你的
play\u snd()
inside
success
调用
ajax
请求,而不是
setInterval
回调?每次传递的数据中都有什么?你能控制它吗?为什么不添加一个声音1次,然后检查某个服务器函数,确保它是活动的,如果是,播放该声音?整个身体都在数据中。这只是一些标准的html数据。唯一更高级的是前面提到的音频标记。我控制它,因为后端是python flask服务器。下次刷新时声音可能会有所不同。如果有办法通过jquery从服务器获取单个变量,然后直接使用它来播放同样有效的声音。som将如何处理你喜欢那样的工作吗?