一,json
json是什么我就不过多阐述,我们利用ajax很多时候都是拿到json格式数据,然后结合dom显示到页面到中,所以json是一种数据格式,并且我们可以把他的形态写出来:
var jsondata=[ {'aa':111,'bb':111111}, {'aa':222,'bb':111111}, {'aa':333,'bb':111111}, {'aa':444,'bb':111111}, {'aa':555,'bb':111111}, {'aa':666,'bb':111111}, {'aa':777,'bb':111111}, {'aa':888,'bb':111111}, {'aa':999,'bb':111111}, {'aa':123,'bb':111111}, {'aa':456,'bb':111111}, {'aa':789,'bb':111111}, {'aa':987,'bb':111111}, {'aa':654,'bb':111111}, {'aa':321,'bb':111111}, {'aa':556,'bb':111111}, {'aa':223,'bb':111111}, {'aa':112,'bb':111111}, {'aa':889,'bb':111111}, {'aa':778,'bb':111111}, {'aa':998,'bb':111111}, {'aa':447,'bb':111111}, {'aa':852,'bb':111111}, {'aa':741,'bb':111111}, {'aa':963,'bb':111111}, {'aa':369,'bb':111111}, {'aa':258,'bb':111111}, {'aa':147,'bb':111111}, {'aa':753,'bb':111111}, {'aa':159,'bb':111111}, ];
看到庐山真面目,我们操作他是非常容易的,这就是json,数据的一种格式。
二,jsonp
多了个屁(p),这个就不是格式了,而是一种手段。
我们肯定听闻jsonp跨域请求,我们实际中有没有用过,其实我们在使用谷歌和百度的静态jq类库是jsonp的处理(我不知道对不对)。
看下面的处理:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>jsonp</title> <style type="text/css"> /*reset*/ *{ padding:0; margin:0} body{ height: 100%; width: 100%; font-size:12px; color:#333;} ul{ list-style:none;} /*demo*/ </style> </head> <body> <div id="jj">jsonp</div> </body> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> $(function(){ alert($("#jj").html()); }); </script> </html>
我们引用百度的静态库,我们发现和在本地使用jq类库一样,都可以处理,百度的js文件被使用就是跨域了。
进一步,如果这个js文件里面存放了我们json的数据,我们拿到这个js文件其实也就跨域拿到了里面的数据去使用。
所以说jsonp是一种技术手段,利用了.js文件的跨域性,来实现各种处理。