问题描述
- js全局变量的赋值和使用
-
var myArray = {};
var cpuNumMax = 1;
var cpuNumMin = 1;
function getVMProductByTypeMap(){
$.ajax({
url:"<%= request.getContextPath()%>/service/selfservice/getProductByTypeMap",
type:"post",
dataType:"json",
data:{"typeId":"1"},
cache: false,
asycn:false,
success: function (data) {
if(data != null && data != ""){
alert(data[0].cpuNumMax);////查到的值是32
cpuNumMax = parseInt(data[0].cpuNumMax);
cpuNumMin = parseInt(data[0].cpuNumMin);
for(var i=0; i<data.length; i++){
var memMax = data[i].memMax;
var memMin = data[i].memMin;
var cpuNum = data[i].cpuNum;
myArray[cpuNum] = memMin+"|"+memMax;
}
}
return resultFlag;
//console.log(myArray);
},
error:function(){
alert("error");
}
});
}
$(document).ready(function(){
getVMProductByTypeMap();
console.log(cpuNumMax); //1});
ajax中我已使用了同步,但 为什么console.log(cpuNumMax); 输出是1,就是ajax中没有为其赋值 ?
解决方案
找到原因了。 这种写法本身是正确的。 是我单词拼错了
解决方案二:
js中的全局变量的使用
解决方案三:
最好找到问题原因的方法是调试,监听你的变量
解决方案四:
ajax是异步请求,你在执行console.log(cpuNumMax); 的时候 请求并没有完成,导致没有赋值,所以你输出来的就是原始数据了.
时间: 2024-10-21 12:56:11