JavaScript入门

Posted !>Mon<!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript入门相关的知识,希望对你有一定的参考价值。

javascript入门篇—JSONP的应用

什么是JSONP

个人理解:将服务器端返回的json数据封装成JavaScript对象,非正式传输协议。

JSONP解决了什么问题

Ajax不支持跨域请求。JavaScript在请求ajax的时,URL的请求域名和当前页面完全一致。跨域是指:协议、域名、端口一致。而JSONP的出现解决了跨域请求。

JSONP为什么可以解决跨域请求

Web页面调用JS文件时不受跨域的影响,还有拥有src这个属性的标签也一样不受跨域影响。<script>、<img>、<iframe>,而且<script>标签里的内容会被自动执行。因此在服务端把json数据封装成一个JavaScript对象。

JSONP的使用

http://api.money.126.net/data/feed/0000001,1399001?callback=refreshPrice为例

  • 服务器端创建JavaScript对象(类似这样):

String callbackFunction=request.getParameter(“callback”);            //获取回调方法名refreshPrice

//将json数据封装成JavaScript对象refreshPrice({"0000001":{"code": "0000001", ...} }); 

Return result=callbackFunction+”(“+json+”)”;         

 

  • 在JavaScript中准备回调函数refreshPrice (data).
function refreshPrice(data) {
    var p = document.getElementById(‘test-jsonp‘);
    p.innerhtml = ‘当前价格:‘ +
        data[‘0000001‘].name +‘: ‘ + 
        data[‘0000001‘].price + ‘;‘ +
        data[‘1399001‘].name + ‘: ‘ +
        data[‘1399001‘].price;
}

 

  • 给页面动态添加<script>
function getPrice() {
    var
        js = document.createElement(‘script‘),
 
        head = document.getElementsByTagName(‘head‘)[0];
    js.src = ‘http://api.money.126.net/data/feed/0000001,1399001?callback=refreshPrice‘;
    head.appendChild(js);
}

这个function被执行时,在head标签里追加

<script src="http://api.money.126.net/data/feed/0000001,1399001?callback=refreshPrice"></script>。

当web页面被加载执行该<script>时,相当于执行<script>refreshPrice({"0000001":{"code": "0000001", ... });<script>

而<script>里的内容会被自动执行,此时调用准备好的refreshPrice回调函数获取json数据。

             

以上是关于JavaScript入门的主要内容,如果未能解决你的问题,请参考以下文章

推荐net开发cad入门阅读代码片段

30秒就能看懂的JavaScript 代码片段

常用Javascript代码片段集锦

Javascript JSON 的问题

48个值得掌握的JavaScript代码片段(上)

如何将此 JavaScript 代码片段翻译成 Parenscript?