如何在满足某些条件后停止AJAX调用中的设置超时功能?

时间:2016-12-27 05:05:30

标签: javascript jquery ajax

我有以下一段代码可以正常工作但我想在满足某些条件时停止自动刷新。

GlobeController

2 个答案:

答案 0 :(得分:0)

$(document).ready(function() {

var myVar;

function yourFunction() {
    myVar =  setTimeout( function(){  
        $.ajax({
            url: '/jrt/?Id=$data.jacket.id',
            method: "GET",
            cache: false,
            success: function(data) {
                $( '#gt' ).html( data );
            },
            error: function(jqXHR, textStatus, errorThrown) {
                alert('error ' + textStatus + " " + errorThrown);
            }
        })
    },10000);
}

function stopYourFunction() {
    clearTimeout(myVar);
} });

使用stop clearTimeout来停止setTimeOut函数。请参阅此w3schools,有一个很好的解释

答案 1 :(得分:0)

在变量中指定setTimeout函数并在任何条件下清除它。

var timer;

$(document).ready(function() {
  timer = window.setTimeout(function() {
    $.ajax({
      url: '/jrt/?Id=$data.jacket.id',
      method: "GET",
      cache: false,
      success: function(data) {
        //$("#gt").append(data);

        $('#gt').html(data);

        if (1) // your any condition
        {
          window.clearTimeout(timer);
        }
      },
      error: function(jqXHR, textStatus, errorThrown) {
        alert('error ' + textStatus + " " + errorThrown);
      }
    })
  }, 10000);
});