我有一个简单的ajax函数:
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
function crunchifyAjax() {
$.ajax({
url: '/user/show-user-task-messages?code=<c:out value="${liveCode}"/>',
success: function (data) {
$('#result').html(data);
}
});
}
</script>
<script type="text/javascript">
var intervalId = 0;
intervalId = setInterval(crunchifyAjax, 100);
</script>
该函数检查每100ms我的网址并返回一些文字:
10
9
8
7
6
5
4
3
2
1
stop
我想在data
包含停止后打破此计时器。我怎么能这样做?
非常感谢这方面的任何帮助。
答案 0 :(得分:0)
试试这个:
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
function crunchifyAjax() {
$.ajax({
url: '/user/show-user-task-messages?code=<c:out value="${liveCode}"/>',
success: function (data) {
$('#result').html(data);
if((""+data).indexOf("stop") > -1)
clearInterval(intervalId); //clearing the interval started by setInterval
}
});
}
</script>
<script type="text/javascript">
var intervalId = 0;
intervalId = setInterval(crunchifyAjax, 100);
</script>
答案 1 :(得分:0)
假设您的服务器返回一个项目数组,如
["1","2","4","stop","6"]
您可以检查回来的数组,看看它是否有“stop
”项,如果是,则调用clearInterval
方法。
success: function (data) {
$('#result').html(data);
var subset = data.filter(function (a) {
return a === "stop";
});
if (subset.length > 0) {
window.clearInterval(intervalId);
}
}
如果您的服务器返回类似"1,3,5,stop,6"
的字符串,您可以使用indexOf
方法检查特定字符串是否存在
success: function(data) {
$('#result').html(data);
if (data.indexOf("stop") > -1) {
window.clearInterval(intervalId);
}
如果您要返回一组项目,我强烈建议您返回一个数组而不是连接字符串。
答案 2 :(得分:0)
只是举个例子,查看'NA'
的内容 - 如果它符合您的条件(在您的情况下持有“停止”) - &gt; data
。
虚拟代码:
clearInterval()