如果结果包含键,如何停止ajax计时器
How to stop ajax timer if results contains key
我有一个简单的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>
函数每100毫秒检查一次我的url并返回一些文本,像这样:
10
9
8
7
6
5
4
3
2
1
stop
我想在data
包含stop后打破这个计时器。我该怎么做呢?
试试这个:
<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>
只是给你一个例子,检查data
的内容-如果它符合你的条件(在你的情况下保持"停止")-> clearInterval()
。
伪代码:
var intervalId = null;
var x = 0;
intervalId = setInterval(crunchifyAjax, 100);
function crunchifyAjax() {
if (x < 10) {
x++;
console.log(x);
return true;
}
clearInterval(intervalId, crunchifyAjax);
}
假设您的服务器返回一个项目数组,如
["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);
}
如果要返回一个项的集合,我强烈建议您返回一个数组,而不是一个连接的字符串。
相关文章:
- 当用户停止键入时进行Ajax搜索
- 如果数据为空,Ajax加载不会停止
- jQuery-停止ajax请求
- Ruby Rails - JS - 停止AJAX中以前的脚本
- 无法通过单击取消按钮停止 ajax 调用
- 返回值 false 以停止 ajax 调用
- 返回false dos't停止ajax$.post中的代码
- 如何停止AJAX进行多次调用
- 我想在2分钟后停止ajax请求
- jQuery停止ajax异步运行
- jquery如何在单击按钮时停止$.ajax
- 如何停止AJAX函数提交
- JQuery要求字段不能停止Ajax表单提交
- 更改页面后在jQuery中停止Ajax请求
- 如何停止ajax加载器
- 停止Ajax请求并调用新的Ajax
- 如果结果包含键,如何停止ajax计时器
- 如何停止Ajax映像加载调用新函数
- 如果存在另一个请求,如何停止 AJAX 请求
- 失败时停止 ajax 函数