我正在尝试学习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);
}
});
}我在问哪种练习是最好的,为什么呢?
发布于 2015-02-10 12:18:35
无论哪种方式都可以,这只是使用success回调或承诺的区别,在这种情况下没有区别。如果您希望从函数doSomething返回结果,那么您将使用第一个方法,这样您就可以返回承诺,因为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);
}
});
}https://stackoverflow.com/questions/28431236
复制相似问题