JQuery load(url)最初不工作,在间隔后激活

时间:2015-09-02 10:33:40

标签: javascript jquery ajax

我正在尝试将一个由Jquery加载到div中的页面。 它应该偶尔刷新一次。

现在刷新工作。 但是,初始页面加载不会。

我试图确保编写了正确的代码。 有人能指出我正确的方向吗?

我的代码:

  <script type="text/javascript">
      jQuery(document).ready(function() {


                    $.ajaxSetup({
                        cache: false
                    }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
                    setInterval(function() {
                        $('#WebsiteImages').load('/images/?SetAjaxCall=loadimages');
                    }, 2000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.

                    /// **** DEFAULT LOADING
                    //$('#WebsiteImages').html('Some set text :-)');
                    $('#WebsiteImages').load('/images/?SetAjaxCall=loadimages');

      });
   </script>

div:

<div id="WebsiteImages"></div>

奇怪的是,取消注释:

$('#WebsiteImages').html('Some set text :-)');

那可行。

修改 我尝试了以下代码:

结果是一样的。 (*尝试将警报设置为测试并运行代码, - &gt;我收到警报,因此没有解析错误*)

$(window).load(function() {     
    $('#WebsiteImages').load('images/?SetAjaxCall=loadimages');          
});

我还尝试创建一个在页面加载后立即加载的函数:

function LoadImagePage(){
                            $('#WebsiteImages').load(\'/images/?SetAjaxCall=loadimages');
                        }

还添加了警报以检查是否已加载。它运行。然而无济于事。

ANSWER 通过: lshettyl 以下代码WORKED !!!

$(function() {

    $.ajaxSetup({
        cache: false
    });

    //IIFE
    (function loadStuff() {
        $('#WebsiteImages').load('/images/?SetAjaxCall=loadimages', function() {
            setTimeout(loadStuff, 2000);
        });
    }());
});

1 个答案:

答案 0 :(得分:3)

正如我在评论中所说,拥有IIFE而不是重复代码会更干净。我还建议在加载回调中使用setTimeout而不是setInterval。以下是我所说的一个例子。请记住,您已经拥有的代码应该可以工作,除非这是第一次调用中的严重延迟,并且setInterval已经启动。

$(function() {

    $.ajaxSetup({
        cache: false
    });

    //IIFE
    (function loadStuff() {
        $('#WebsiteImages').load('/images/?SetAjaxCall=loadimages', function() {
            setTimeout(loadStuff, 2000);
        });
    }());
});

以下是同一行的a demo