javascript - AJAX 最佳实践是什么?

标签 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);
        }
    });
}

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

最佳答案

无论哪种方式都可以,只是使用 success 回调或 Promise 的区别,在本例中没有区别。如果您想从函数 doSomething 返回结果,那么您可以使用第一个方法,以便您可以返回 Promise,因为 done 方法可以绑定(bind)到外部函数。

这两个示例都过于复杂,并且 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);
    }
  });
}

关于javascript - AJAX 最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431236/

相关文章:

javascript - 添加/重置新值时,MDC 组件不会更新 UI

javascript - 如何使用 jQuery 访问在 jQuery 中创建的元素

javascript - jquery ajax input[name=somename] val(data) - 如何识别多个变量

javascript - 同一域(localhost)上的XHR跨域错误

javascript - Webpack bootstrap-loader 在引导后加载自定义文件

javascript - Flot::时间序列图中的突出显示点

javascript - 如何使用 javascript/angular.js 设置配置文件

php - Ajax 调用返回的数据

用于 HTML 表单的 JavaScript

javascript - 将函数应用于具有相同类名但在鼠标悬停时彼此独立的函数的一组对象