我正在尝试学习javascript最佳实践,我有点困惑。我有红色,最好的ajax练习是:
function doSomething(arg1, arg2) {
jQuery.ajax({
var urlink = resourceURL
url: urlink,
cache: false,
data : "testData"+arg1,
type: "POST"
}).done(function(data) {
var obj = jQuery.parseJSON(data);
updateHtml1(obj);
updateHtml2(obj);
});
}
而不是这样:
function getSomething(arg1, arg2) {
jQuery.ajax({
var urlink = resourceURL
url: urlink,
cache: false,
data : "testData"+arg1,
type: "POST",
success: function(data) {
var obj = jQuery.parseJSON(data);
updateHtml1(obj);
updateHtml2(obj);
}
});
}
我在问哪种做法最好,为什么?
答案 0 :(得分:1)
无论哪种方式都没问题,使用success
回调或承诺只是一个区别,在这种情况下没有区别。如果您想要从函数doSomething
返回结果,那么您将使用第一个方法,以便您可以返回promise,因为done
方法可以绑定在函数外部。
两个示例都过于复杂,var urlink = resourceURL
放在对象文字中,因此实际上都不起作用。您还应该在调用中指定dataType
,然后将自动解析数据。
在第一个示例中,您不需要额外的函数包装器。
function doSomething(arg1, arg2) {
jQuery.ajax({
url: resourceURL,
cache: false,
data : "testData"+arg1,
type: "POST",
dataType: "json"
}).done(function(data) {
updateHtml1(data);
updateHtml2(data);
});
}
第二个应该是:
function getSomething(arg1, arg2) {
jQuery.ajax({
url: resourceURL,
cache: false,
data : "testData"+arg1,
type: "POST",
dataType: "json",
success: function(data) {
updateHtml1(data);
updateHtml2(data);
}
});
}