我有一个vb.net aspx页面,它在document.ready上加载一个模态div。
然后我有一个函数,它基本上对返回日期/时间的aspx页面进行ajax调用。
ajax调用然后使用日期和时间
更新模态div层中的div以上所有内容在页面最初加载时都有效。
但是我希望它每隔5秒左右做一次这个功能 - 但它只做一次。
所以我想要总结的是...... - 页面加载 - document.ready显示模态div(这是有效的) - 然后setInterval调用ajax函数到我的页面返回date.time(这可以工作1次)
没有我给出任何代码(假设我的代码现在是废话)大声笑可以这样做吗?
基本上,我希望页面只需显示通过调用ajax函数每5秒更新一次div 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 include的链接。
再次感谢您的回复 - 并且一如既往地会得到任何帮助。
干杯
答案 0 :(得分: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*/);
答案 1 :(得分:0)
您需要在文档就绪功能中使用setInterval
,如下所示:
$(document).ready(function() {
setInterval(doAjax, 5000);
});
function doAjax() {
// Call server-side resource here via AJAX
}
注意:如果您想要其他内容触发5秒间隔,请将setInterval(doAjax, 5000);
调用放在您想要的任何选择器或单击事件处理程序中。显然也不需要使用jQuery,但这是我能想到的最快的例子。
答案 2 :(得分:0)
使用你的回复和来自另一个帖子的答案的组合。
我从setInterval WITH括号()调用函数而不只是函数引用。
还结合了文件就绪=结果!!!!
我从另一个帖子中提到的答案是JS setInterval executes only once