我遇到了javascript全局变量(称为TimeStamp)未定义onload的问题......至少我认为这是问题所在。Javascript可变范围
我从这开始,定义TimeStamp。
$(document).ready(function(){
// AddTest();
var TimeStamp = null;
waitForMsg();
});
... waitForMsg然后使用TimeStamp运行并在成功完成ajax调用后更新它。至少这是这个想法,但目前没有任何运行,因为“TimeStamp没有定义”......即使我早些时候定义它! (urgh)。
如果我在waitForMsg中重新定义Timestamp,它只是被重置,而不是使用successfull 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) */
},
});
};
与往常一样,任何帮助非常感谢。
丹。
Niiii。全球化是邪恶的。 – Quentin
并非总是如此,它解决了眼前的问题。当你使用jQuery时,jQuery和$是全局变量,你会发现那个邪恶吗? –
谢谢!!!!!愚蠢的我认为把它放在那里确实宣布它是全球性的。 –