Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery在源代码更改后刷新映像_Javascript_Jquery - Fatal编程技术网

Javascript Jquery在源代码更改后刷新映像

Javascript Jquery在源代码更改后刷新映像,javascript,jquery,Javascript,Jquery,我有一个JavaScript函数,可以播放声音文件(使用phonegap)。它通常工作正常,但我想在下载文件时将imgsrc更改为加载图标。但是,src发生了变化 播放文件后 我试图将+new Date().getTime()添加到src的末尾,但没有效果。有什么想法吗 function playSound(){ var img = $(this).prev(); img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTim

我有一个JavaScript函数,可以播放声音文件(使用phonegap)。它通常工作正常,但我想在下载文件时将
imgsrc
更改为加载图标。但是,src发生了变化 播放文件后

我试图将
+new Date().getTime()
添加到src的末尾,但没有效果。有什么想法吗

function playSound(){


var img = $(this).prev();

img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());


var url = "http://some.com/fanky.mp3";   
mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
mediaTTS.play();

}

这可能是因为直到当前运行循环结束时才重新绘制图像。如果
Media.play()
被阻止,您可能无法看到图像更改,直到它完成播放

要确认我的怀疑,请尝试以下代码:

function playSound(){
    var img = $(this).prev();
    img.attr("src", "css/images/ajax-loader.gif?"+new Date().getTime());
    setTimeout(function() {
        var url = "http://some.com/fanky.mp3";   
        mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
        mediaTTS.play();
    }, 100);
}

尝试删除src属性,然后使用不同的src再次添加

function playSound(){
  var img = $(this).prev();
  img.removeAttr("src").attr("src","css/images/ajax-loader.gif?"+new Date().getTime());
  var url = "http://some.com/fanky.mp3";   
  mediaTTS = new Media(url, onSuccessTTS(url), onErrorTTS);
  mediaTTS.play();
}

延迟可能是预加载问题。首先尝试一下,如果它仍然存在,我们继续。:)谢谢,这就是问题所在。使用您的代码,它会更新代码并显示加载的动画,但会在一段时间内阻止动画。但总比什么都没有好。是的,看起来你的媒体元素在主线程上阻塞了。您应该查看文档,看看是否有办法让它异步预加载。