我首次为响应式网页/网络应用程序(移动设备)创建商业API。
我很新,很遗憾,独自工作以及Javascript的新手(很复杂的故事)。
我只是想知道业内人士是否可以就以下格式的“获取”电话提供他们的专业意见:
var getSample = function(params) {
//Returns Object
return $.ajax({
url: URL + 'downloadQuadrat.php',
type: 'GET',
data: { 'projectID': params.pid, 'quadratID': params.qid },
dataType: dataType
});
}
函数调用:
var printList = function(lid,options,get) {
var list = $("ul#"+lid);
var promise = get(options);
promise.promise().then(
function(response) {
var items = response;
list.empty();
$.each(items, function(item,details) {
var ul = $('<ul/>');
ul.attr('id', lid+'_'+details.ID);
var li = $('<li/>')
.text(details.ID)
.appendTo(list);
ul.appendTo(list);
$.each(details,function(key,value) {
var li = $('<li/>')
.text(key+': '+value)
.appendTo(ul);
});
});
}
);
}
非常感谢任何意见或指导。
答案 0 :(得分:3)
我不是业内专业人士,本身,但我认为有些事情可以改善您的代码:
$("#"+lid)
代替$("ul#"+lid)
。开头的ul
不会添加任何消歧,因为id
属性必须是唯一的,而且只需要花费更长的时间来解析。以下是我将如何更改您的代码:
var printList = function(lid, options, get) {
var promise = get(options);
var list = $("#" + lid);
promise.success(function(response) {
var data = response;
list.empty();
$.each(data, function(item, details) {
var ul = $('<ul/>').attr('id', lid + '_' + details.ID);
var li = $('<li/>').text(details.ID).appendTo(list);
ul.appendTo(list);
$.each(details, function(key, value) {
var li = $('<li/>').text(key + ': ' + value).appendTo(ul);
});
});
});
}
编辑:除了次要的ul#
之外,编辑后的代码版本对我来说很好。
答案 1 :(得分:3)
更多建议让您的API看起来更专业:
1 - 命名空间
使用命名空间将代码整齐地打包在它自己的空间中,它不会与页面上的其他函数定义冲突。这样的事情开头:
window.MyNamespace = {};
MyNamespace.get = function(qid, pid) {
//things
};
MyNamespace.anotherFunction = function() {
//other stuff
}
如果您的代码开始变大,您可以将整个代码包装在一个闭包中。您也可以将它全部定义为类,然后将其实例化一次以使您的代码更整洁,并允许您存储实例变量并调用this.anotherFunction()。如果你愿意,我也可以举例说明。
2 - API方法签名
我更喜欢看到的另一件事是函数的显式参数而不是函数get(params)样式代码。使参数显式化使您的代码更易于阅读和理解,并且阻止特殊的黑客攻击,这在编写API时尤其重要。这只是因为你并不意味着你应该这样做。
3 - 配置
尝试将ID和URL等内容转换为变量,以使代码更容易重用和使用。
通常,Javascript开发人员在查看您的API文档之前查看代码是着名的,因此您可以采取任何措施使API函数名称和参数名称更具表现力并自我记录将有助于他们。