我遇到了 JavaScript 全局变量(称为 TimeStamp)未在加载时定义的问题...至少我认为这就是问题所在。
我从这里开始,定义时间戳。
$(document).ready(function(){
// AddTest();
var TimeStamp = null;
waitForMsg();
});
...waitForMsg 然后使用 TimeStamp 运行并在成功完成 ajax 调用时更新它。至少这是这个想法,但目前没有任何运行,因为“时间戳未定义”......即使我之前定义了它! (呃)。
如果我在 waitForMsg 中重新定义时间戳,它只会被重置,而不是使用成功的 ajax 函数中的更新值。
function waitForMsg(){
$.ajax({
type: "POST",
url: "backend.php",
async: true,
cache: false,
timeout:50000, /* Timeout in ms */
data: "TimeStamp=" + TimeStamp,
success: function(data){
var json = eval('(' + data + ')');
$('#TextHistory :last-child').after('<p>' + json['msg'] + '</p>');
TimeStamp = json['timestamp'];
setTimeout(
'waitForMsg()', /* Request next message */
1000 /* ..after 1 seconds */
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
$('#TextHistory :last-child').after('<p>' + errorThrown + '</p>');
setTimeout(
'waitForMsg()', /* Try again after.. */
"15000"); /* milliseconds (15seconds) */
},
});
};
一如既往,我们非常感谢任何帮助。
Dan.