Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';Ajax(以前的Ajax)和AJANE之间的实际区别是什么?_Javascript_Ajax_Asynchronous - Fatal编程技术网

Javascript 什么';Ajax(以前的Ajax)和AJANE之间的实际区别是什么?

Javascript 什么';Ajax(以前的Ajax)和AJANE之间的实际区别是什么?,javascript,ajax,asynchronous,Javascript,Ajax,Asynchronous,2005年2月18日,Jesse James Garrett将AJAX(异步Javascript和XML)的首字母缩写为AJAX,这是一种越来越流行的方法,它利用了XMLHttpRequest对象 请参见: 在相对较短的时间内,JSON成为首选的数据交换格式,AJAX(现在实际上是AJAJ)成为AJAX(异步数据检索方法的名称,而不是缩写) 但是关于AJANE(异步Javascript而不是别的)呢 毫无疑问,Ajax是行业标准方法,而不是AJANE——但是为什么呢?它是否更快、更安全、更优化

2005年2月18日,Jesse James Garrett将AJAX(异步Javascript和XML)的首字母缩写为AJAX,这是一种越来越流行的方法,它利用了
XMLHttpRequest
对象

请参见:

在相对较短的时间内,JSON成为首选的数据交换格式,AJAX(现在实际上是AJAJ)成为AJAX(异步数据检索方法的名称,而不是缩写)

但是关于AJANE(异步Javascript而不是别的)呢

毫无疑问,Ajax是行业标准方法,而不是AJANE——但是为什么呢?它是否更快、更安全、更优化

  • 与AJANE相比,Ajax有哪些实际优势
  • 为什么前者比后者更为成熟
  • 在开发时,为什么要使用一种方法而不是另一种

N.B.请注意,我不是在征求意见或偏好。我试图理解,在构建一个新的
并将其添加到DOM的基础上部署
XMLHttpRequest
对象是否有明确的、真实的技术理由

AJANE(一个我今天以前从未听说过的术语,我在谷歌上找不到任何参考)更常见的名称是JSONP。它:

  • 需要创建一个全局变量来处理响应(这适用于正常的JSONP。您的方法似乎涉及到响应,包括内部的所有内容,而不是一个简单的函数调用,它引入了以下附加问题:)
    • 对同一端点的多个请求每次都必须获取所有逻辑来处理它
    • 调用函数只能向全局变量和字符串提供什么上下文信息
  • 不提供有关响应状态的任何信息(例如,您无法检测到404或500错误)
  • 依赖于将软件注入页面而不是数据,这意味着您必须绝对信任数据的提供者
  • 仅限于发出GET请求

如何使用AJANE将数据传递到服务器并从服务器检索数据?我将给出一个数字,但我怀疑这是现实的。大约99%的AJAX调用没有获取Javascript。他们从服务器应用程序获取数据(或将数据推送到服务器应用程序)。
function retrieveMyAsynchronousData() {
    var myAsynchronousData = document.createElement('script');
    myAsynchronousData.setAttribute('src', '/data/my-asynchronous-data.js');
    document.body.appendChild(myAsynchronousData);
}

myElement.addEventListener('click', retrieveMyAsynchronousData, false);