0

我有一个 vb.net aspx 页面,它在 document.ready 上加载了一个模态 div。

然后我有一个函数,它基本上对返回日期/时间的 aspx 页面进行 ajax 调用。

然后,ajax 调用使用日期和时间更新模态 div 层中的 div

当页面最初加载时,以上所有内容都有效。

但我希望它每 5 秒左右执行一次该功能 - 但它只执行一次。

所以我想要总结的是...... - 页面加载 - document.ready 显示模态 div(这有效) - 然后 setInterval 调用 ajax 函数到我返回 date.time 的页面(这有效 1 次)

  • 然后在显示模态 div 时,在页面上时, setInterval 不断执行上述行(这不起作用)

没有我提供任何代码(假设我的代码现在是废话)大声笑可以这样做吗?

基本上,我希望页面简单地显示通过调用 ajax 函数每 5 秒更新一次 divs innetText 的日期/时间。

然后,如果我们可以让它工作,我将对此进行扩展:)

再次非常感谢任何帮助:)

干杯

更新 04-11-2013 10:04

我刚刚尝试将 setInterval 调用放在文档就绪块中 - 甚至向我调用的函数添加了一个警报,以查看它是否真的多次调用它 - 但它没有 - 仍然只有一次。

这是代码。

所以在脚本标签的开头我有

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        showPayWait();
        setInterval(processPayment(), 5000);
    });        

    /* Function to Process Payment via AJAX calls so we can update the modal div */
    function processPayment() {

        // show modal div first
        var OrderIDResponse = "";
        var lngOrderID = "";
        UpdateMessage('Assigning an OrderID');

        // Get Ajax Response into variable.
        OrderIDResponse = getOrderID();

        // Parse it to the actual text we need i.e. the orderid
        lngOrderID = OrderIDResponse['responseText'];

        if (!lngOrderID == "") {
            UpdateMessage("OrderID Assigned: " + lngOrderID);

        }
        else {
            UpdateMessage('Unable to assign an OrderID ' + lngOrderID);
        }


    }

    // -- Generic function to update the divInfo Element
    function UpdateMessage(msg) {
        document.getElementById("divInfo").innerText = msg;
    }
</script>

只是想我应该指出这段代码所在的页面是母版页的内容页面

母版页只有最新的 jQuery 包含的链接。

再次感谢您的回复 - 一如既往的任何帮助都会得到极大的欢迎。

干杯

4

3 回答 3

0

要么这样做:

function update() {
   //update logic belongs here

   setTimeout(update, 5000 /*5secs*/);
}

setTimeout(update, 5000 /*5secs*/);

或像这样:

function update() {
   //update logic belongs here
}

setInterval(update, 5000 /*5secs*/);
于 2013-10-31T17:43:02.803 回答
0

您需要setInterval在文档就绪功能中使用,如下所示:

$(document).ready(function() {
    setInterval(doAjax, 5000);
});

function doAjax() {
    // Call server-side resource here via AJAX
}

注意:如果您希望其他东西触发 5 秒间隔,则将setInterval(doAjax, 5000);调用放在您想要的任何选择器或单击事件处理程序中。显然也不需要用 jQuery 来完成,但这是我能想到的最快的例子。

于 2013-10-31T17:44:20.920 回答
0

结合您的回复和另一个线程的答案,让它工作。

我从 setInterval WITH 括号 () 调用函数,而不仅仅是函数引用。

还结合文档准备好=结果!!!!

我从另一个线程提到的答案是JS setInterval 只执行一次

于 2013-11-04T11:15:34.633 回答