您的位置:首页 > 其它

加个标记达到同步效果~

2016-06-03 17:25 162 查看
————————————————————————————————————————————————————————————————————————————

修改前:

function save() {

                var jsonarray=[];

    var jsonText;
$("table tr").each(function(i){
if(i!=0){
   var widgetId;
   var isChecked;
   var column;
   var row;
   var check = document.getElementsByName("check");
       if(check[i-1].checked == true){
       
isChecked = true;
       }else{
       
isChecked = false;
       }
   
       widgetId=check[i-1].value;
   
   $(this).children("td").each(function(j){
       if(j==2){
       
column=$(this).text();
       }else if(j==3){
       
row=$(this).text();
       }
       
   });
   
       var obj={
"widgetId":widgetId,
"isChecked":isChecked,
"column":column,
"row":row
           };
       jsonarray.push(obj);
   var jsonList = eval(jsonarray); 
   jsonText = JSON.stringify(jsonList);
}
});

   $.ajax({
type: 'POST',
url: "${ctx }/erp/widgetUserConfig.action?method:saveDesktopSet",
dataType: 'json',
data: {
jsonarray:jsonText
},
success : function(data) {
var json = eval(data);
var flag = json.flag;
if(flag == "true"){
alert("保存成功!");
}}
});

}

}

问题:连续点击按钮会导致数据的重复保存!

————————————————————————————————————————————————————————————————————————————

给ajax加个同步,使得未保存完情况下不能发送第二次保存的执行,但是ajax同步处理会卡顿,在马老师的指导下加了个标记

修改后:

function save() {
var saveFlag=false; //标记保存与否

    var jsonarray=[];

    var jsonText;
if(!saveFlag){                         //未保存则。。;已保存则停下来
$("table tr").each(function(i){
if(i!=0){
   var widgetId;
   var isChecked;
   var column;
   var row;
   var check = document.getElementsByName("check");
       if(check[i-1].checked == true){
       
isChecked = true;
       }else{
       
isChecked = false;
       }
   
       widgetId=check[i-1].value;
   
   $(this).children("td").each(function(j){
       if(j==2){
       
column=$(this).text();
       }else if(j==3){
       
row=$(this).text();
       }
       
   });
   
       var obj={
"widgetId":widgetId,
"isChecked":isChecked,
"column":column,
"row":row
           };
       jsonarray.push(obj);
   var jsonList = eval(jsonarray); 
   jsonText = JSON.stringify(jsonList);
}
});

   $.ajax({
type: 'POST',
url: "${ctx }/erp/widgetUserConfig.action?method:saveDesktopSet",
dataType: 'json',
data: {
jsonarray:jsonText
},
success : function(data) {
var json = eval(data);
var flag = json.flag;
if(flag == "true"){
alert("保存成功!");
saveFlag=true;                      //已保存
}}
});

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax 同步