클라이언트 측 아약스 처리의 경우 모든 URL을 포함하는 URL 객체가 있고 아약스를 처리하는 아약스 객체가 있습니다. 이것은 중심 접근법이 아닙니다. 제 경우에는 다른 작업을 처리하는 다른 URL이 있습니다. 또한 Ajax 객체로 실행될 콜백 함수도 전달합니다.
var controller_wrapper = {
controller: {
domain: "MYDOMAIN.com",
assets: "/assets",
prefix: "",
api: {
domainer: "http://domai.nr/api/json/info",
tk_check: "https://api.domainshare.tk/availability_check"
},
"perpage": "/listings/ajax",
"save_image": "/members/saveImage",
"update": "/members/update",
"check_domain": "/registrar/domaincheck",
"add_domain": "/registrar/domainadd",
"delete_listing": "/members/deactivateProfile",
"save_listing": "/members/saveProfile",
"get_images": "/images/get",
"delete_image": "/images/delete",
"load_listing": "/members/getProfile",
"load_listings": "/members/getListings",
"loggedin": "/members/loggedin",
"login": "/members/login",
"add_listing": "/members/add",
"remove": "/members/remove",
"get": "/members/get",
"add_comment": "/members/addComment",
"load_status": "/api/loadStatus"
}
}
var common = {
pager: 1,
page: 0,
data: {
saved: {},
save: function (k, v) {
this.saved[k] = v;
}
},
ajax: {
callback: '',
type: 'POST',
url: '',
dataType: '',
data: {},
add: function (k, val) {
this.data[k] = val;
},
clear: function() {
this.data = {};
},
send: function() {
var ret;
$.ajax({
type: this.type,
url: this.url,
data: this.data,
dataType: this.dataType !== '' ? this.dataType : "json",
success: function (msg) {
if (common.ajax.callback !== '') {
ret = msg;
common.ajax.callback(ret);
} else {
ret = msg;
return ret;
}
return;
},
error: function (response) {
console.log(response);
alert("Error");
}
})
}
}
var callback = function (results) {
console.log(results
}
common.ajax.callback = callback;
common.ajax.type = "jsonp";
common.ajax.type = "POST";
common.ajax.url = controller_wrapper.controller.perpage;
common.ajax.add("offset", common.page);
common.ajax.add("type", $("select[name='query[type]']").val());
common.ajax.add("max", $("select[name='query[max]']").val());
common.ajax.add("min", $("select[name='query[min]']").val());
common.ajax.add("bedrooms", $("select[name='query[bedrooms]']").val());
common.ajax.add("sort", $("select[name='query[sort]']").val());
common.ajax.send();
어, 다른 JS 라이브러리를 실제로 수행하고 있습니까? 시간을 투자하기 전에 N 플랫폼에서 이러한 권리를 얻으려는 고통과 습관을 배우기 전에 jQuery, YUI 등을 약간 다른 방식으로 여러 가지 방법으로 살펴 보았습니다. 개인적으로 가장 좋아하는 것은 jQuery이지만 거의 모든 것이 처음부터 새로운 건물. –
@Peter : no. 내 코드 좀 봐, 나는 JS lib를 만들려고하지 않고있다. 무거운 클라이언트 끝을 가진 웹 앱을 개발하려고합니다. 나는 건축 조언을 요구하고있다. – Shawn
hes는 코드 구성에 대해 묻습니다.그것 없이는 세계의 모든 jQuery가 쓰레기처럼 보입니다. – seanmonstar