由于某种原因,当尝试在函数外部使用时,get函数中的newdata会丢失。警报显示为0,但是当我将警报放在get函数中时,它显示80(这应该是什么。)任何想法?
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
//alert( "Load was performed."+newdata );
});
alert( "Load was performed."+newdata );
由于
答案 0 :(得分:0)
你的变量不会丢失,jQuery get是一个异步请求。这意味着当您提醒您尚未获得数据时,它仍将返回0.
您可以将代码更改为同步运行,这将解决您的问题,但是您应该小心,因为它会阻止任何更多的代码执行,直到您收到回复。
$.ajax({
url: 'http://localhost/?stat=size',
success: function(data) {
newdata = data.replace(/\D/g,'');
},
async: false
});
但是我建议你在获得成功的过程中运行你需要做的事情,这意味着它只会在你检索到数据后才会运行,并且不会阻止任何其他执行。
var newdata = 0;
//Get latest stat from file
$.get( "http://localhost/?stat=size", function( data ) {
//Strip any letters from result (if any)
newdata = data.replace(/\D/g,'');
alert( "Load was performed."+newdata );
});