【问题标题】:Getting an AJAX call to reload a div every x minutes获取 AJAX 调用以每 x 分钟重新加载一个 div
【发布时间】:2015-05-25 17:01:02
【问题描述】:

我是 Javascript 和 AJAX 的新手,所以请原谅我的新手问题。我有一个 AJAX 调用(正在工作),我想让它每 5 分钟刷新一次 div 的内容(我没有使用 jquery)。这就是我在我的 html 页面的 <head></head> 中调用 AJAX 函数的方式:

    <script type=text/javascript>
        setInterval(ajaxCall(), 300000);
    </script>

初始页面加载会填充 div,但 div 的内容在 5 分钟后不会刷新。我做错了什么?

【问题讨论】:

标签: javascript html ajax


【解决方案1】:

将您的代码更改为:

setInterval(ajaxCall, 300000);

传递参数:

setInterval(function(){ ajaxCall(someCoolValue); }, 300000);

请注意ajaxCall 中缺少括号。你想传递函数本身,而不是调用函数。 More examples on MDN.

【讨论】:

  • 谢谢安迪。我需要将参数传递给 ajaxCall。我应该在发布问题时指定这一点。
【解决方案2】:

你需要包装你的ajaxCall

<script type=text/javascript>
    setInterval(function(){ ajaxCall(); }, 300000);
</script>

【讨论】:

    【解决方案3】:

    这里

    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    </head>
    
    <div id="links">
    
    </div>
    
    <script language="javascript" type="text/javascript">
    var timeout = setTimeout(reloadChat, 300000);
    
    function reloadChat () {
    $('#links').load('test.php #links',function () {
            $(this).unwrap();
            timeout = setTimeout(reloadChat, 300000);
    });
    }
    </script>
    

    另外,你称它为错误的正确语法是,

    setInterval(ajaxCall, 300000);
    

    希望对你有帮助:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-07
      • 1970-01-01
      相关资源
      最近更新 更多