Javascript jQuery Uncaught RangeError:使用setTimeout时超出了最大调用堆栈大小
我正在尝试创建一个实时通知脚本,每当在我的文件中找到某个文本时,它都会播放声音。这就是我尝试过的:Javascript jQuery Uncaught RangeError:使用setTimeout时超出了最大调用堆栈大小,javascript,jquery,Javascript,Jquery,我正在尝试创建一个实时通知脚本,每当在我的文件中找到某个文本时,它都会播放声音。这就是我尝试过的: <script type="text/javascript" src="jquery-2.1.3.min.js"></script> <script type="text/javascript"> function getTextfile() { $.get('myfile.txt', { cache:false }, function(
<script type="text/javascript" src="jquery-2.1.3.min.js"></script>
<script type="text/javascript">
function getTextfile() {
$.get('myfile.txt', { cache:false }, function(data) {
if (data.indexOf("Hello World") > -1) {
document.write("Hello World is found");
var audio = new Audio('wb.wav');
audio.play();
} else {
document.write("It's NOT found");
var audio = new Audio('wn.wav');
audio.play();
}
setTimeout(getTextfile, 1000);
},'text');
}
getTextfile();
</script>
但在我的chrome浏览器上,我遇到了以下错误:
未捕获范围错误:超过最大调用堆栈大小`
myfile.txt
会动态更改,因此每当它找到我要查找的文本或找不到文本时,它都会播放不同的声音,而无需刷新浏览器。如何解决这个问题?我找到了问题的原因,是document.write()
造成的。在我摆脱了document.write()
之后,一切都很顺利。谢谢您是否尝试增加超时延迟?这与问题无关,但请注意,您将cache:false
作为参数发送到请求,而不是停止jQuery缓存响应。如果要停止缓存,请使用$.ajax
并设置cache:false
,或调用$.ajaxSetup([cache:false})
在您的$请求之前。获取
请求。wm.wav和wb.wav文件的大小是多少?您是否尝试过在不加载这些文件的情况下加载这些文件?您是否可以在a中设置一个此问题的示例,因为我看不出此代码中出现错误的原因。您确定是此代码块导致了问题?该代码段中没有任何内容在我看来,这显然是“错误的”。你能缩小具体的破坏范围吗?
Line one
line two
Hello World
line four