什么是AJAX最佳实践?

时间:2015-02-10 12:06:05

标签: javascript jquery ajax

我正在尝试学习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);
        }
    });
}

我在问哪种做法最好,为什么?

1 个答案:

答案 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);
    }
  });
}