为什么越来越多的开发者选择使用 JSONP?

作者:七台河麻将开发公司 阅读:49 次 发布时间:2023-05-15 11:04:51

摘要:近年来,我们可以发现越来越多的前端开发人员选择使用 JSONP 技术。那么,为什么 JSONP 能够成为越来越多开发者选择的一种优秀解决方案呢?本文将从以下三个方面进行详细阐述:1. 什么是 JSONP?2. JSONP 的优势是什么?3. 如何使用 JSONP?接下来,请跟随我的脚步一起探索这...

近年来,我们可以发现越来越多的前端开发人员选择使用 JSONP 技术。那么,为什么 JSONP 能够成为越来越多开发者选择的一种优秀解决方案呢?

为什么越来越多的开发者选择使用 JSONP?

本文将从以下三个方面进行详细阐述:

1. 什么是 JSONP?

2. JSONP 的优势是什么?

3. 如何使用 JSONP?

接下来,请跟随我的脚步一起探索这个被普遍使用的技术。

1. 什么是 JSONP?

在回答这个问题之前,我们需要先了解两个概念:Ajax 和跨域请求。

Ajax:AJAX(Asynchronous JavaScript and XML)全称异步 JavaScript 和 XML,是利用 JavaScript 的 API 实现异步更新了网页的技术。可以让数据与视图的变化不重新刷新整个页面。

跨域请求:因为浏览器的安全限制,在同一个域名下的页面可以自由地进行数据的访问和交互,而不同域名的进行浏览器限制访问。

一个常见的例子:前端需要获取一些数据,但是这些数据不在同一个域名下。这时候,Ajax 请求就有了问题,因为 Ajax 请求默认只能访问同一域名下的后端数据。

而 JSONP 技术则可以解决这个问题。

JSONP(JSON with Padding)是一种解决跨域请求的方式。其原理是通过向不同域的服务器动态加载 JavaScript 脚本的方式,同时在 url 中传递一个回调函数的名称,可以使得访问到的数据不仅仅是普通的数据,而是为该函数的参数。这样,就可以避免跨域访问的限制,同时前端可以直接调用该函数并处理获取到的数据。

下面是一个 JSONP 请求的实现流程:

请求代码:

```js

let script = document.createElement('script')

script.src = 'http://domain.com/test?callback=callback'

document.body.appendChild(script)

```

请求的 url 为 'http://domain.com/test?callback=callback',其中 callback 参数的值就是在响应中需要把数据作为参数传递的函数名称。

服务端响应代码:

```js

callback({"name": "John"})

```

响应数据被封装在函数参数中。

2. JSONP 的优势是什么?

主要有以下几点原因。

(1)兼容性好

JSONP 请求的原理是通过向不同域名的服务器动态加载 JavaScript 脚本的方式,可以兼容所有现代浏览器。而 XMLHttpRequest (Ajax 请求)则有可能在旧版本的浏览器上无法兼容。

(2)简单易用

使用 JSONP 只需要在 url 中添加一个回调函数名,然后在传递的参数中调用该函数即可。因此,JSONP 使用起来极其简单易用。

(3)服务器负载低

在短时间内,会发送多个 Ajax 请求会使服务器承受较大的压力,而 JSONP 支持在同一请求中获取多个数据,减轻了服务器的压力。

(4)支持 GET 请求

JSONP 只支持 GET 请求 ,这也是 JSONP 能够兼容所有浏览器的原因之一。

(5)可以实现数据的跨域传递

JSONP 是可以实现数据跨域传递的,这对当前的 Web 开发来说具有极大的意义。这意味着我们可以获取其他网站的数据,进行展示和处理,不断丰富我们的内容和功能。

3. 如何使用 JSONP?

下面是一个简单的 JSONP 请求的实现。

```js

function jsonp(url, callback) {

let script = document.createElement('script')

let fnName = 'jsonp_callback' + Date.now()

window[fnName] = function (data) {

callback && callback(data)

delete window[fnName]

script.parentNode.removeChild(script)

}

script.src = url + (url.indexOf('?') < 0 ? '?' : '&') + 'callback=' + fnName

document.body.appendChild(script)

}

```

该请求函数的使用方法如下:

```js

jsonp('http://domain.com/test', function (data) {

console.log(data)

})

```

JSONP 对性能有一定影响。因为跨域请求总是需要服务器响应的同时返回前端请求的数据,而这也意味着它是通过依靠轮询来实现的,所以相对于一个原始的 Ajax 请求来说,JSONP 请求的响应时间会更长。因此,JSONP 适用于少量并且数据不能经常更新的情况。

总结:

JSONP 技术是一种解决跨域请求的方式,其通过在 url 中动态加载带有回调函数名称的 JavaScript 脚本,返回的数据为该函数的参数。使用 JSONP 的优势在于:兼容性好、使用简单易用、服务器负载低、支持 GET 请求、实现数据的跨域传递。同时,使用 JSONP 需要注意它不适用于处理大量的数据和需要实时更新的应用场景。

  • 原标题:为什么越来越多的开发者选择使用 JSONP?

  • 本文链接:https:////zxzx/8302.html

  • 本文由深圳飞扬众网小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与飞扬众网联系删除。
  • 微信二维码

    CTAPP999

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员


    点击这里给我发消息电话客服专员


    在线咨询

    免费通话


    24h咨询☎️:166-2096-5058


    🔺🔺 棋牌游戏开发24H咨询电话 🔺🔺

    免费通话
    返回顶部