总结一下用面向对象写法调用借口
<script src="jquery.min.js"></script>
<script src="store.min.js"></script>
<script src="layer/layer.js"></script>
<script>
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var arr = window.location.search.substr(1).match(reg);
if (arr != null) {
return decodeURIComponent(arr[2])
};
return null;
};
var debug = GetQueryString('debug') ? GetQueryString('debug') : 'false';
var stockDomain = "http://mapi.ktkt.com";
if (debug == 'true') {
stockDomain = "http://utest.mapi.ktkt.com";
}
var token = GetQueryString('token');
var origin = GetQueryString('origin');
var ajaxSengMode = !("WebSocket" in window ? true : false);
var myPermissionInstance = new MyPermission({
token: token,
origin: origin,
debug: debug,
apiUrl: stockDomain,
advancedBrowser: ajaxSengMode
});
console.log(myPermissionInstance);
myPermissionInstance.Start();
</script>
!(function (win, $) {
var myPermissionApi = function (options) {
var domain = options.domain || '';
var self = this;
this.isBow = "WebSocket" in window ? true : false;
this.Err = { "code": 500, "msg": "" };
this.Error = function (code, msg) {
var err = this.Err;
err.code = code;
err.msg = msg == "error" ? '网络不给力啊,请再次刷新' : msg;
return err;
};
this.ajaxSendMode = function (url, args, funcOk, funcErr) {
var self = this;
if (!self.isBow) {
self.ajaxSendModeJsonp(url, args, funcOk, funcErr);
return;
};
$.ajax({
type: 'post',
url: url,
dataType: 'json',
data: args,
success: function (json) {
funcOk(json);
},
error: function (errorThrown, textStatus) {
if (errorThrown.status === 911) {
var errInfo = JSON.parse(errorThrown.responseText);
funcErr && funcErr(self.Error(errInfo.code, errInfo.message));
return;
};
funcErr && funcErr(self.Error(errorThrown.status, errorThrown.responseText));
}
});
};
this.ajaxSendModeGet = function (url, args, funcOk, funcErr) {
var self = this;
if (!self.isBow) {
self.ajaxSendModeJsonp(url, args, funcOk, funcErr);
return;
};
$.ajax({
type: 'get',
url: url,
dataType: 'json',
data: args,
cache:false,
success: function (json) {
funcOk(json);
},
error: function (errorThrown, textStatus) {
if (errorThrown.status === 911) {
var errIntext = errorThrown.responseText + '';
var error = errIntext.replace(/^(\w+)?\(|\)\;$/mg, '');
var errInfo = $.parseJSON(error);
if (errInfo.code == undefined) {
errInfo.code = '25000';
};
if (errInfo.message == undefined) {
errInfo.message = '没有获取到服务器返回错误';
};
funcErr && funcErr(self.Error(errInfo.code, errInfo.message));
}
}
});
};
this.ajaxSendModeJsonp = function (url, args, funcOk, funcErr) {
var self = this;
$.ajax({
type: 'get',
url: url,
dataType: 'jsonp',
data: args,
success: function (json) {
if (json.code && json.message && json.code != 200) {
funcErr && funcErr(self.Error(json.code, json.message));
return;
}
funcOk(json);
},
error: function (errorThrown, textStatus) {
if (errorThrown.status === 911) {
var errIntext = errorThrown.responseText + '';
var error = errIntext.replace(/^(\w+)?\(|\)\;$/mg, '');
var errInfo = $.parseJSON(error);
if (errInfo.code == undefined) {
errInfo.code = '25000';
};
if (errInfo.message == undefined) {
errInfo.message = '没有获取到服务器返回错误';
};
funcErr && funcErr(self.Error(errInfo.code, errInfo.message));
return;
}
}
});
};
this.getMyPermissionArgs = { 'token': '', 'origin': '', 'version': '' };
this.getMyPermissionReq = function (args, funcOk, funcErr) {
var url = domain + "/permission/v1/info";
var args = $.extend(self.getMyPermissionArgs, args);
self.ajaxSendMode(url, args, funcOk, funcErr);
};
}
var MyPermission = function (options) {
var defaults = {
token: "",
origin: "",
apiUrl: "",
advancedBrowser: false
};
this.classTitle = $('#classTitle');
this.Err = { "code": 500, "msg": "" };
this.Error = function (code, msg) {
var err = this.Err;
err.code = code;
err.msg = msg == "error" ? '网络不给力啊,请再次刷新' : msg;
return err;
};
this.options = $.extend({}, defaults, options);
};
$.extend(MyPermission.prototype, {
Start: function () {
this.init();
},
init: function () {
var self = this;
this.Layer = win.layer;
this.Store = win.store;
this.myPermissionApi = new myPermissionApi({ "domain": this.options.apiUrl });
this.showPermissionListFunc();
this.getMyPermissionFunc();
},
getMyPermissionFunc: function () {
var self = this;
var args = this.myPermissionApi.getMyPermissionArgs;
args.token = this.options.token;
args.origin = this.options.origin;
args.version = this.Store.get('myPermissionListVersion#');
this.myPermissionApi.getMyPermissionReq(args, function (data) {
console.log(data);
if(data.refresh){
self.Store.set('myPermissionMap#', data.data);
self.Store.set('myPermissionListVersion#',data.version);
self.showPermissionListFunc();
}
}, function (err) {
self.localStorageHandle();
self.showPermissionListFunc();
self.Layer.msg(err.msg);
});
},
showPermissionListFunc: function (){
var myPermissionMap = this.Store.get('myPermissionMap#');
if (!myPermissionMap) {
this.classTitle.html('暂无');
return;
};
this.classTitle.html('暂无');
},
localStorageHandle: function () {
var self = this;
self.Store.remove('myPermissionMap#');
self.Store.remove('myPermissionListVersion#')
},
});
win['MyPermission'] = MyPermission;
})(window, jQuery);