您的位置:首页 > Web前端 > JavaScript

JavaScript模拟实现jsonp

2018-03-29 22:25 423 查看
jsonp实际上就是在本地创建一个
<script>
标签,利用
<script>
标签自带的跨域能力访问另一个domain下面的文件。而这个文件将会返回一个js代码,执行回调函数。

代码

<script type="text/javascript">
// 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
var url = "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998&callback=flightHandler";
// 创建script标签,设置其属性
var script = document.createElement('script');
script.setAttribute('src', url);
// 把script标签加入head,此时调用开始
document.getElementsByTagName('head')[0].appendChild(script);

// 得到航班信息查询结果后的回调函数
var flightHandler = function(data){
alert('你查询的航班结果是:票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
};
</script>


参考链接:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html

思考

在解析到上述js的时候已经对dom做出了修改,那么页面排版引擎是等待js引擎解析剩下的js代码,还是并行处理新增加的dom节点(
<script>
标签)?

按照上面代码实现的思路来看,应该是继续处理剩下的js代码。然后页面排版引擎解析新增加的
<script>
标签,然后返回js代码执行回调,也就是执行本地定义的
flightHandler
函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: