1

我从不完全确定何时会生成 ajax-loaded.html(可能是 1 秒或 10 秒),所以我使用 setInterval 不断调用 example_ajax_request()。这样,当它确实可用时,它就会显示出来(在一秒钟内)。

问题- 我如何调用 myStopFunction() 以便在 example_ajax_request() 实际加载 ajax-loaded.html 时,setInterval 停止?

<html>
<head>
</head>
<body>
<div id="example-placeholder">
<p>Placeholding text</p>
</div>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js" type="text/javascript"></script>
  <script>
    var myVar=setInterval(function(){example_ajax_request()},1000);
    function example_ajax_request() {
        $('#example-placeholder').html('<p><img src="ajax-loader.gif"  /></p>');
        $('#example-placeholder').load("ajax-loaded.html");
    }

    function myStopFunction(){
        clearInterval(myVar);
    }
  </script>

</body>
</html>
4

1 回答 1

2

您可能应该使用加载回调来清除间隔。

$('#example-placeholder').load("ajax-loaded.html", function () {
   myStopFunction();
});

每秒轮询一次是不好的,您应该使用error回调通过 retryCount 重试。

于 2013-01-23T22:43:41.107 回答