请问我们使用的CDN是不是就是JSONP使用的例子

来源:12-4 实现跨域的常见方式 - jsonp 和 CORS

慕丝1117639

2022-03-05

老师请问平时使用CDN链接,是不是就是JSONP的一个实际用例?
比较都是CDN链接都是外域的,也是使用script标签。所以算是使用JSONP这种机制了吧

写回答

1回答

hymanzhan

2022-03-06

这俩不是一回事…

简而言之:

  • jsonp针对的是如何获取json数据(本来jsonp就是json with padding的意思)

  • jsonp只是通过script标签获取json数据

  • cdn本质上可以理解为服务器缓存

  • 用script标签获取cdn中的js文件就是很正常地加载一个js文件而已,既不是为了获取json数据也不是通过回调函数获取json数据

jsonp是为了绕开浏览器对XMLHttpRequest同源策略的限制,目的是获取来自不同源服务器端的json数据,因此使用了没有同源限制的script标签来获得json数据。但是仅通过script标签获得json数据也没啥用,因为我们的代码没法从script标签中获取到这些json数据。所以服务端对需要返回的json数据进行处理,使其变成一个执行函数的指令,函数的名字就是自行定义的回调函数,而函数的接收的参数就是需要返回的json数据,那这样一来就可以在我们自己的代码中获得这些json数据并进行进一步操作了。

而CDN(content delivery network)这个东西的目的是把静态资源缓存到离用户更近的服务器来加速访问用的。比方说我公司主服务器在中国但是客户在美国,物理距离非常远,图片、视频甚至js、css等静态资源加载速度就会比较慢,所以会把这些静态资源放到美国本土的cdn服务器上,那用户加载这些资源的时候就是直接从美国的本土的CDN服务器加载了,速度就会快很多。

这俩解决的不是一个问题,针对的对象也不一样。

6
1
慕丝1117639
非常感谢!
2022-03-06
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程