对于客户端ajax处理我有一个URL对象,它包含我所有的url,并且我有一个处理ajax的ajax对象。这不是一个中心的方法。在我的情况下,我有不同的网址处理不同的任务。我还将一个回调函数传递给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,但几乎所有东西都比从头开始建立一个新的。 – 2009-12-13 06:15:04
@彼得:没有。看看我的代码,我没有试图建立一个JS库。我试图开发一个沉重的客户端的Web应用程序。我正在寻求建筑建议。 – Shawn 2009-12-13 06:19:06
hes询问代码组织。没有这些,世界上所有的jQuery看起来都是垃圾。 – seanmonstar 2009-12-13 06:40:18