Javascript 与纯JSON/P实现相比,AJAX/XHR有什么优势吗?

Javascript 与纯JSON/P实现相比,AJAX/XHR有什么优势吗?,javascript,ajax,json,xmlhttprequest,Javascript,Ajax,Json,Xmlhttprequest,严格来说,这不是一个编程主题,但我们欢迎您的输入。我最近一直在开发YouTube API,我从PHP代码开始,使用SimpleXML,然后实际上跳过了AJAX,直接使用原生JSON并在客户端完成所有工作 虽然它“感觉”更快,但我想知道它是否已经为黄金时间做好了准备。即使有众多的框架,CSS的限制和浏览器之间事件传播处理的变化仍然让我担心在我的应用程序中过度使用Javascript 一个缺点实际上是,有时候JavaScript移动得太快,而且没有延迟,它可能会感到不安 这些只是我的想法。事实上,我

严格来说,这不是一个编程主题,但我们欢迎您的输入。我最近一直在开发YouTube API,我从PHP代码开始,使用
SimpleXML
,然后实际上跳过了AJAX,直接使用原生JSON并在客户端完成所有工作

虽然它“感觉”更快,但我想知道它是否已经为黄金时间做好了准备。即使有众多的框架,CSS的限制和浏览器之间事件传播处理的变化仍然让我担心在我的应用程序中过度使用Javascript

一个缺点实际上是,有时候JavaScript移动得太快,而且没有延迟,它可能会感到不安

这些只是我的想法。事实上,我还没有真正深入研究XHR,因为JSON才这么有意义,但我想知道经验丰富的程序员喜欢什么以及为什么

编辑:

为了清楚起见,我要说的是,使用/依赖直接调用JSON API(JSON-p)后加载的回调是否足够安全,或者您是否真的应该依赖于您和第三方API之间的隔离服务器端层(XHR),如果没有其他东西的话——出于缓存目的?

XHR:

  • 允许您访问HTTP头
  • 允许访问错误代码
  • 允许您定义在服务出错时要采取的操作
  • 不需要全局回调函数
JSON-p是一种火与祈祷的方法

但是,您无法比较XHR和JSON。XHR是发出HTTP请求的一种方式。JSON是一种数据格式。你可以一起使用它们。JSON-P涉及生成
元素来获取JSON,而不是使用XHR。

XHR:

  • 允许您访问HTTP头
  • 允许访问错误代码
  • 允许您定义在服务出错时要采取的操作
  • 不需要全局回调函数
JSON-p是一种火与祈祷的方法


但是,您无法比较XHR和JSON。XHR是发出HTTP请求的一种方式。JSON是一种数据格式。你可以一起使用它们。JSON-P涉及到生成
元素来获取JSON,而不是使用XHR。

我认为定义您提到的每种技术是一个好主意,因为您似乎在比较XHR和JSON,这两种技术在两个不同的级别上,不可比较

XHR(XMLHttpRequest)
这是JavaScript中用于向服务器执行HTTP请求的对象。的名称表示它请求XML,但它可以接收任何类型的数据(例如JSON)

JSON(JavaScript对象表示法)
这是一种数据格式。它可以用来表示数据结构,非常类似于XML,但更简洁。它还与JavaScript直接兼容,并且易于转换为JavaScript对象

JSONP(带填充的JSON)
JSON的一个扩展,它注入一个
标记,直接从请求它的服务器执行一段JavaScript。附加的回调参数是在页面上调用的全局函数,用于委托数据。用于在JavaScript中从外部服务请求数据

AJAX(异步JavaScript和XML) 我真的无法准确描述这一点,因为它可能意味着很多事情。相反,请看一看


我想说它肯定已经为黄金时间做好了准备。如果感觉“太快”,则很容易使从一种状态到另一种状态的转换更平滑/更慢

使用今天的框架,您可以让JavaScript在99%的访问者浏览器中表现相同。假设每个人都启用了JavaScript是非常安全的(比如YouTube,除非启用了JavaScript,否则它不会播放视频)

尽管如此,还是有一个简单的静态备用版本来满足最后1%的需求


我最近的大多数私有web项目主要是用JavaScript实现的,使用对服务器的XHR请求来获取数据。其中一个例子是my,它有单独页面的概念,但完全使用地址的散列部分进行导航。它确实有你提到过的这种神经质的行为(但它是可以工作的)。

我认为定义你提到的每种技术是一个好主意,因为你似乎在比较XHR和JSON,这两种技术在两个不同的级别上,不可比较

XHR(XMLHttpRequest)
这是JavaScript中用于向服务器执行HTTP请求的对象。的名称表示它请求XML,但它可以接收任何类型的数据(例如JSON)

JSON(JavaScript对象表示法)
这是一种数据格式。它可以用来表示数据结构,非常类似于XML,但更简洁。它还与JavaScript直接兼容,并且易于转换为JavaScript对象

JSONP(带填充的JSON)
JSON的一个扩展,它注入一个
标记,直接从请求它的服务器执行一段JavaScript。附加的回调参数是在页面上调用的全局函数,用于委托数据。用于在JavaScript中从外部服务请求数据

AJAX(异步JavaScript和XML) 我真的无法准确描述这一点,因为它可能意味着很多事情。相反,请看一看


我想说它肯定已经为黄金时间做好了准备。如果感觉“太快”,则很容易使从一种状态到另一种状态的转换更平滑/更慢

使用今天的框架,您可以让JavaScript在99%的访问者浏览器中表现相同。假设每个人都启用了JavaScript是非常安全的(比如YouTube,除非启用了JavaScript,否则它不会播放视频)

尽管如此,还是有一个简单的静态备用版本来满足最后1%的需求

我最近的大部分隐私