varParseHelper.js
1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
define(['mUtil'], function (mUtil) {
var v = window.__meta__ && window.__meta__.varparser || { s: {}, t: {} }, sourcemap = v.s, targetmap = v.t, loadingmap = {};
return {
parse: function(callback){
var that = this, requestmap = {};
Object.keys(sourcemap).forEach(function(skey){
var loaded = false;
Object.keys(loadingmap).every(function(lkey) {
if(lkey === skey){
loaded = true;
return false;
}
return true;
});
!loaded && Object.keys(targetmap).every(function(tkey) {
if(tkey === skey){
loaded = true;
return false;
}
return true;
});
if(!loaded){
requestmap[skey] = sourcemap[skey];
loadingmap[skey] = sourcemap[skey];
}
});
if(Object.keys(requestmap).length){
var url = mUtil.getActionUrl("service.MobileCommon", { action: "parseVar" });
mUtil.ajax(url, { requestmap: JSON.stringify(requestmap) }, function (result) {
if(result.status == 1){
if(window.__meta__.sessionKey){
var varsStr = mUtil.replaceAttachUrl(JSON.stringify(result.data));
$.extend(targetmap, JSON.parse(varsStr));
}else{
$.extend(targetmap, result.data);
}
Object.keys(result.data).forEach(function(key) {
delete loadingmap[key];
});
that.render(callback);
}else{
mUtil.console.error(result.errMsg);
}
}, {type: "POST", dataType: "json"});
}else{
that.render(callback);
}
},
render: function(callback){
Object.keys(targetmap).map(function(key) {
$("."+key).each(function(){
$(this).before(targetmap[key]).remove();
});
});
callback && callback();
}
};
});