【问题标题】:Jquery ajax post with timer event?带有计时器事件的Jquery ajax帖子?
【发布时间】:2013-05-24 09:08:31
【问题描述】:

脚本

$(document).ready(function () {
    var meter_id = $("#MeterReadingTypes li a.link_active").attr("id");
    var range_id = $("#DateRangeTypes li a.link_active").attr("id");

    window.setInterval(PostMainChartValues(meter_id, range_id), 5000);
    ...
});

function PostMainChartValues(meter_id, range_type_id) {
    $.ajax({
        ...
    });
}

window.setInterval 没有被触发。如果我在 setInterval 中写一个警报,它会起作用。这是什么原因?为什么函数没有触发?我用chrome DevTools跟踪了一下,没有动静。

【问题讨论】:

    标签: javascript jquery ajax timer


    【解决方案1】:

    setInterval 的第一个参数应该是 函数(或 evalable 字符串)。现在,您正在调用 PostMainChartValues() 并将其返回值传递给 setInterval()

    改成:

    window.setInterval(function() {
        PostMainChartValues(meter_id, range_id);
    }, 5000);
    

    【讨论】:

    • 或者 SO 的 websocket 会提前几毫秒通知我。 :) 不太可能我更快。 :-)
    • 它有效,但我无法完全理解。和THIS有什么区别
    • @AliRızaAdıyahşi:在您的示例中,您分配的是 返回值,而不是 setInterval 期望的函数。
    【解决方案2】:

    这不是 ajax 问题。您在错误模式下使用了setInterval 参数。

    创建一个匿名的function,如下所示:

    window.setInterval(function () { PostMainChartValues(meter_id, range_id); }, 5000);
    

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      相关资源
      最近更新 更多