ajax有不同的风格吗?

Posted

技术标签:

【中文标题】ajax有不同的风格吗?【英文标题】:Are there different styles of ajax? 【发布时间】:2020-04-23 11:50:25 【问题描述】:

我对使用 ajax 有点陌生,但我在很大程度上取得了成功。我的大多数 ajax 调用看起来与此非常相似:

function saveQueryProf()    
    var currentDate = new Date();
    var date=currentDate.getDate()+'/'+(currentDate.getMonth()+1)+'/'+currentDate.getFullYear();

            $.ajax(
            type: "POST",
            url: "API.php",
            data:  method: "createQueryProfile",
                    prof_name: $('#nameTxt').val(), 
                    prof_SQL: $('#sqlTxt').val(),
                    date: date

                  ,
            datatype: "json"

        ).done(function(returnresult) 
        )

使用 $.ajax( 方法。但是,每当我看到有人在 youtube 或其他网站上使用“ajax”时,他们的代码看起来更像这样:

function loadDoc() 
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() 
    if (this.readyState == 4 && this.status == 200) 
     document.getElementById("demo").innerhtml = this.responseText;
    
  ;
  xhttp.open("GET", "ajax_info.txt", true);
  xhttp.send();

我意识到它们在做不同的事情,但是这两个有什么区别?当我在网上寻找答案时,如何才能找到更符合第一种风格的答案?

【问题讨论】:

这能回答你的问题吗? What is the difference between XMLHttpRequest, jQuery.ajax, jQuery.post, jQuery.get XMLHttpRequest 是旧的原生函数来检索数据(由微软创建并被其他浏览器采用)。现代原生函数是fetch,它非常易于使用,您不需要 jQuerys $.ajax。 那么在现代浏览器中有fetch,还有一些其他库(例如axios)比jquery做得更好 顺便说一下,AJAXA同步JavaScript and的缩写XML,并且由于您使用的是 JSON 而不是 XML,因此您在技术上使用的是 AJAJ = A同步 JavaScript and JSON. @some 我不知道这一点。有没有理由使用 AJAX 而不是 AJAJ?如果可以,你能给我一个简单的例子吗? 【参考方案1】:

我看到问题已经回答了,但我认为可以添加更多信息。

在您的第一个示例中,您使用的是 jQuery($.ajax 调用)。您需要将此库添加到您的网站才能使其正常工作。最简单的方法是将带有 jQ​​uery CND 的标签添加到您的网站。

第二个例子是使用原生 javascriptXMLHttpRequest。它有更复杂的语法(大写和小写字符的奇怪混合),但您不需要向站点添加任何内容。它会完成这项工作,一旦你习惯了它的语法,它可能就是你所需要的。

我用于 AJAX 请求的第三个选项是 fetch() 方法。像 XMLHttpRequest 一样,它是内置在 JavaScript 语言中的。 fetch() 的语法非常简单,并且可以轻松使用 Promise。如果您将发出不会立即返回数据的请求,您可能需要承诺。以下是有关 fetch 的更多信息: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

我用于 AJAX 的第四个选项是 Axios 库。如果你只为 AJAX 请求包含 jQuery,Axios 可能是更好的选择。更多关于 Axios 的阅读:https://github.com/axios/axios

如果您想深入了解fetch()XMLHttpRequest 之间的差异和优缺点,请查看此线程: Fetch API vs XMLHttpRequest

【讨论】:

【参考方案2】:

Ajax 是 JQuery 中为工厂类 XmlHttpRequest 定义的扩展方法。

【讨论】:

【参考方案3】:

第一个示例使用$.ajax(),特定于jQuery。它比内置的 Javascript API XMLHttpRequest 简单得多。 XMLHttpRequest 不需要使用任何外部库,尽管它更难。 $.ajax() 依赖于 XMLHttpRequest

【讨论】:

天哪,我怎么不知道。我认为您必须包含 JQuery 库才能使用 ajax。谢谢。 没问题!我很乐意提供帮助!【参考方案4】:

您的代码需要 jQuery 库才能工作(这就是 $$.ajax 的来源)。他们的代码直接使用XMLHttpRequest,它内置在 JavaScript 中,因此不需要任何库。如果您希望您的 AJAX 代码依赖于 jQuery,那么只需将其作为搜索词。

【讨论】:

天哪,我怎么不知道。我认为您必须包含 JQuery 库才能使用 ajax。谢谢。

以上是关于ajax有不同的风格吗?的主要内容,如果未能解决你的问题,请参考以下文章

不同风格的递归,引用/全局/指针变量的使用

我可以对不同的门户使用 ajax GET 请求吗?

raywenderlich.com的Swift编程风格指南

websocket[tornado] 的单个实例可以处理不同的请求吗?

Android Studio 中不同风格的测试包

一个接一个地显示两个模态视图控制器,它们之间有不同的过渡风格