WEB开发网
开发学院网页设计JavaScript 使用 JSONP 实现跨域通信,第 2 部分: 使用 JSONP... 阅读

使用 JSONP 实现跨域通信,第 2 部分: 使用 JSONP、jQuery 和 Yahoo! 查询语言构建 mashup

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 清单 14. 示例 mashup 页面的 HTML 代码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&q

清单 14. 示例 mashup 页面的 HTML 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 <head> 
  <script type="text/javascript" src="jquery-1.3.1.min.js"/> 
  <style type="text/css"> 
  ... 
  </style> 
  <title>JSONP Mashup</title> 
 </head> 
 <body> 
  <div class="widget"> 
   <div class="widget-head">Latest stock quotes</div> 
   <div class="widget-content" id="quotes"/> 
  </div> 
  <div class="widget"> 
   <div class="widget-head">NYT news headlines</div> 
   <div class="widget-content" id="headlines"/> 
  </div> 
  <div class="widget"> 
   <div class="widget-head">Weather for Armonk, NY</div> 
   <div class="widget-content" id="weather"> </div> 
  </div> 
  <script type="text/javascript"> 
   var yqlUrl1="http://query.yahooapis.com/v1/public/yql?q= 
    select%20symbol%2C%20price%20from%20csv%20 
    where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes.csv%3F 
    s%3DIBM%2CYHOO%2CGOOG%2CMSFT%26f%3Dsl1d1t1c1ohgv%26e%3D.csv'%20and%20 
    columns%3D'symbol%2Cprice%2Cdate%2Ctime%2Cchange%2Ccol1%2Chigh%2Clow%2Ccol2' 
    &format=json&callback=?"; 
   $.getJSON(yqlUrl1, function(data){ 
    $.each(data.query.results.row, function(index, item){ 
     $('#quotes') 
     .append( 
      $('<p/>') 
      .append($('<span class="left"/>').text(item.symbol)) 
      .append($('<span class="right"/>').text('$'+item.price)) 
     ); 
    }); 
   }); 
 
   var yqlUrl2="http://query.yahooapis.com/v1/public/yql?q= 
    select%20title%2C%20link%20from%20rss%20 
    where%20url%3D%22http%3A%2F%2Fwww.nytimes.com%2Fservices%2Fxml%2Frss%2Fnyt%2F 
    HomePage.xml%22&format=json&callback=?"; 
   $.getJSON(yqlUrl2, function(data){ 
    $.each(data.query.results.item, function(index, item){ 
     $("<a href='" + item.link + "' target="_blank\"/>") 
     .html(item.title) 
     .appendTo($('#headlines')) 
     .wrap('<p/>'); 
    }); 
   }); 
 
   var yqlUrl3= "http://query.yahooapis.com/v1/public/yql?q= 
    select%20*%20from%20weather.forecast%20where%20location%3D10504& 
    format=json&callback=?"; 
   $.getJSON(yqlUrl3, function(data){ 
    $.each(data.query.results.channel, function(index, item){ 
     $('#weather') 
     .append($('<p/>').html(item.description)); 
    }); 
   }); 
  </script> 
 </body> 
</html> 

图 3 展示了在撰写本文时所得到的 Web 页面屏幕快照。

图 3. 示例 mashup 页面
使用 JSONP 实现跨域通信,第 2 部分: 使用 JSONP、jQuery 和 Yahoo! 查询语言构建 mashup

查看原图(大图)

结束语

YQL 是一种强大的服务,使您可在无需利用服务器端代理的前提下实现客户端 mashup。与其 JSONP 支持和 jQuery 相结合,YQL 允许您通过一个统一的界面访问 Web 上的结构化数据。在这篇文章中,您了解了如何使用 jQuery 和 YQL,通过短短几行代码构建一个 mashup Web 页面。您可在此代码的基础上加以改进完善。下面是一些提示:

在小部件头部加入一个图片链接,单击此链接可刷新内容区。

提供一个输入字段,允许用户输入股票代码,仅获取所输入股票的报价。

不仅显示 RSS 项的标题和链接,还显示简介内容。

编缉推荐阅读以下文章

  • 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup

上一页  4 5 6 7 8 9 

Tags:使用 JSONP 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接