- 浏览: 108209 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
墨子宇:
so,为了使用JSLint我还得装一个aptana?
eclipse 添加 JSLint 插件 -
lvjun106:
楼主可以看下这篇文章,介绍的很详细。http://www.os ...
eclipse 添加 JSLint 插件 -
newsletterBroker:
呵呵,感觉不错!
Jquery 源码中的 正则表达式 分析 -
jayliud:
String.prototype.count = funct ...
百度web前端笔试
原文地址:http://www.aliued.cn/?p=2728#more-2728
Neo是一个小公司的Web工程师,老板Morpheus需要Neo开发一个Web程序,这个程序要求:
1.用户能够根据关键词获取Flickr上的图片信息,如搜索瀑布(waterfall)就能获得与瀑布有关的图片;
2.如果图片有地理标识,根据地理标识,获取这个地方的相关信息;
3.顺便向用户显示当地最近的天气情况,说不定用户想去旅游哦。
Neo开始工作,首先查看和学习Flickr的API ,又针对Flickr的API编写了一套程序获取数据,再对返回数据进行处理以得到满意的格式,终于,Neo可以把图片展示到网页上了; 紧接着,为了能够根据图片地理标识获取图片拍摄地的信息,Neo又开始寻找地图服务的API并且学习使用,针对地图API再一次编写地图数据查询程序,处 理返回数据的格式,然后展示到页面上;最后,要想获得当地的天气情况,Neo还必须熟悉某个天气信息提供商的API,继续编写天气数据查询程序,处理返回 数据的格式,在页面上展示给用户。Neo意识到为了开发这个鬼东西,自己反反复复学了3套API,如果需求变更,还可能有更多API加进来,最可怕的是, 以后Neo得长期维护这么多个API,想想真是噩梦!
设想我是Neo,我会试试YQL ,让它帮我把工作变得轻松快乐些。也许你并不了解YQL,没关系,那我们就来认识一下吧。
YQL (Yahoo! Query Language)是一种支持对互联网上的数据进行查询、过滤、连接、类似SQL语法的简单语言。用YQL官方的话:有了YQL,开发人员只需要使用一种 简单的查询语言即可访问和操控互联网上丰富的数据,而不再需要反复学习使用各种各样的API。YQL为我们提供丰富、实时的方法来操控互联网上任意可访问 的API,同时向开发者提供了一个可视化的Web控制台 ,使我们在使用和调试YQL的过程中更加高效便捷。
YQL就像一个超大的数据库,从理论上,这个数据库可以包含整个互联网上的信息。无论您是要基于各种API操作数据,还是从feed源(如RSS, XML,ATOM)获取数据,甚至是从指定的HTML页面上抓取结果,您所需要的就是使用YQL这种类似SQL的简单查询语言:
SELECT something FROM table_name WHERE some_field=some_value
。
YQL能够以规范的格式(XML/JSON)将结果返回给你。这听起来确实很酷,那我们就来看看通过YQL怎么获得与waterfall有关的Flickr图片数据吧:猛击此处 。当我们执行YQL语句后,控制台会打印出我们想要格式的数据,并且生成一个REST 查询链接,有了它,我们就可以用我们熟悉的编程语言开始玩转数据了。对于前端开发人员,我们只需要在控制台选择返回数据格式为JSON,并且提供一个回调函数,这时生成的url就是一个现成的JSONP url地址,如:
<script>
function
loveData
(
r
){
var
results
=
r
.
query
.
results
;
alert
(
results
);
}
</script>
<script
type=
"text/javascript"
src=
"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20flickr.photos.search%20where%20text%3D%22waterfall%22%20limit%2010&format=json&callback=loveData"
></script>
在使用YQL的过程中,选用合适的JavaScript库加以辅助,如YUI,jQuery(准确来说YUI是一个框架),那么开发将会变得更加方便。就在9月7日
发布的YUI 3.2.0
已引入了YQL查询组件。如要通过YUI来调用YQL, 最简单的方法就是向页面中引入YUI3.2.0的seed文件:
然后加载YQL模块,你就可以使用YQL语句直接查询数据了:
YUI
().
use
(
'yql'
,
function
(
Y
)
{
Y
.
YQL
(
'select * from weather.forecast where location=90210'
,
function
(
r
)
{
var
results
=
r
.
query
.
results
//results就是你所关心的数据
//现在你可以用它做任何事情
});
});
YQL将Yahoo!的服务封装成YQL数据表,使得我们轻松地就能够获得这些丰富资源。更重要的是,YQL不只是让我们被动地使用现有的表数据,而是提供了一个开放数据建表平台(Open Data Tables ),我们可以基于YQL的规范构造自己的表数据。在此平台上,您可以使用标准的XML语法和服务器端JavaScript将API或各种数据源封装成自己需要的格式,这样,您就创建了一张属于自己的数据表。当然,由于YQL的表数据是托管在GitHub 上的,你还可以通过GitHub 向YQL项目组推送你的数据表,一旦被接受,那么其他开发人员将会享受到您为他们带去的便利,也因你的贡献,YQL的数据源会更加丰富,也更加强大。
前Yahoo!社交平台副总裁Neal Sample表示 :Yahoo! 正在尽可能的将所提供的服务都转移到YQL上。由于YQL的稳定、扩展性高及易用,对于开发人员来说具有长远利益。通过提供类似SQL的语法,YQL消除 了开发人员学习大量API的麻烦。他们坚信YQL是使用互联网服务的最佳方式,所以Yahoo!对YQL提供长期支持是毫无疑问的,大家可以放心使用。
发表评论
-
execCommand
2011-11-25 16:12 1071mozilla 文档地址:https://develop ... -
javascript DOM
2011-11-21 10:50 987原文地址: http://blog.mo ... -
支持ctrl,shift键的拖拽排序
2011-08-26 11:23 1129终于搞定了,太不容易了。最近公司要弄一个拖拽排序的 ... -
javascript 封装 继承
2011-08-16 17:37 1050原文地址:http://www.ruanyifeng.com/ ... -
javascript 中的闭包
2011-08-16 16:37 878文章地址:http://www.ruanyifeng.com/ ... -
javascript 排序
2011-08-31 19:41 874//生成20-100之间的20个随 ... -
seajs 源码 学习 1
2011-08-10 17:32 0global.seajs = { _seajs: this ... -
seajs 源代码 学习
2011-08-11 14:08 3161这段时间学习了一下seajs,也用了seajs写了不少的d ... -
null 和 undefined
2011-07-31 15:05 838原文地址:http://blog.csdn.net/aimin ... -
辩:javascript 的数据类型
2011-07-29 11:18 1143关于“javascript 的数据 ... -
跨域请求
2011-07-12 11:34 0原文地址:http://itgeeker. ... -
uglifyJS
2011-04-26 12:21 0-b or --beautify — o ... -
JavaScript DO 框架 学习
2011-04-22 14:56 1728昨天在github找东西的时候,发现上了克军的DO框架,感觉不 ... -
prettfy demo
2011-02-23 08:29 1162<!DOCTYPE html PUBLIC " ... -
JavaScript 测试题
2011-02-16 12:07 1034console.log(" ... -
javascript 中的apply和call方法
2010-12-31 15:11 734一直以来不明白,今天算是搞明白了apply和call方法了。记 ... -
jquery 插件 开发 模板
2010-12-10 13:09 921原文来自网上。 (function($) { ... -
31个最实用的Javascript工具
2010-12-08 14:56 1032原文地址:http://developer.51cto.com ... -
27个必备的Javascript开发工具
2010-12-01 14:59 980原文地址:http://blog.mcncc.com/4275 ... -
选择器 效率 图
2010-11-22 11:27 681以后用jquery的选择器这回有依据了
相关推荐
yql-rss-speed-comparison, 演示如何使用YQL检索RSS提要的快速演示 演示如何使用YQL检索RSS提要的快速演示
什么是yql-finance? yql-finance简单,快速 python API。 API返回当前时段和当前股票行情的收盘价(即APPL,GOOGL)。 股票价格:纳斯达克,SP&500,DAX等 如何使用它? 您可以使用它通过以下两种方式之一来获取...
node-yql, 用于NodeJS的YQL ( Yahoo查询语言) 模块 节点 yql节点YQL是 node.js的YQL客户端什么是 YQL?雅虎查询语言是一种表现语言,可以让你通过查询查询。过滤和 Join 数据。 使用 YQL,应用程序运行得更快,代码...
mogy-yql MySQL 查询活动。安装在您的 mogy 项目中,使用 npm 安装依赖项: $ npm install mogy-yql --save将yql活动注册到 Amazon Simple Workflow : $ mogy register配置此模块不需要配置!样本判定器使用 ...
yql-swift yql-swift 是一个 Objective-C 库,为您的 iOS 应用程序提供 YQL 连接。 YQL(Yahoo! Query Language)是一种富有表现力的类似 SQL 的语言,可让您跨 Web 服务查询、过滤和连接数据。 使用 YQL,应用...
YQL-Skorpion.github.io
全天候(YQL演示)应用程序将演示如何在iOS中使用YQL以及解析和显示JSON格式的数据。 此外,它还包括GPS定位的示例。 用户可以通过将类似QuerrySQL传递到YQL API来输入多个城市名称以分别获取天气信息
使用 yqlient 很简单; 这是如何: var yqlient = require ( 'yqlient' ) ; var yql = yqlient . initYQL ( ) ; yql . query ( 'select Symbol, Ask from yahoo.finance.quotes where symbol in ("YHOO","AAPL",...
YQL几乎没有新概念,因此您可以在阅读示例后很短的时间内使用它。尽管它是为规则引擎设计的,但可以在您的代码逻辑中广泛使用。 安装 go get github.com/caibirdme/yql 枫树 请参见yql_test.go和godoc中的更多示例...
使用YQL获取json形式的html 然后用jsonp来实现ajax跨域 截取跨域的html网页
本文介绍一个利用Jquery和雅虎的YQL服务实现天气预报功能,需要的朋友可以参考下
证券交易所价值 JSON/XML 要在 xml 中获得结果,您必须删除回调和格式参数。 将回调参数设置为您的处理函数。 ECO10 米布 40 IPC墨西哥 COL20 美华 IPSA 利马指数一般
YQL Geo Library 是一个 JavaScript 库用来根据地名获取经纬度,或者根据经纬度获取对应的地名。 示例代码: yqlgeo.get('paris,fr',function(o){ alert(o.place.name ' (' o.place.centroid.latitude ',' o....
网站总览一个简单的移动Web应用程序项目,使用YQL检索给定股票的一些财务数据。技术框架: 股票数据:使用 以获取库存统计信息测试:
Yahoo YQL API已停产,无法再使用! 汇率API Java API可通过Yahoo YQL访问外汇汇率,并回退到OpenExchangeRates JSON。 这些服务的响应将被缓存一小时,然后重新执行请求以获取最新费率。 不支持以下官方ISO 4217...
质心能量为s $$ \ sqrt {s} $$ = 8 TeV的大型强子对撞机质子-质子碰撞数据的专用样本用于研究包含性的单衍射解离,pp→X p。 完整的最终状态质子在ATLAS ALFA前向光谱仪中重建,而来自离解系统X的带电粒子在中央检测...
yos-social-demo-dotnet 是 .Net 平台上 OAuth 和 YQL 混合使用的示例。
本图纸是氮气弹簧组件装配。主要是子零件的装配,为了考虑节拍、增加生产效率。对称布置2条相同的生产线,方便后期修改。对于小零件,优先使用PPU等快速机械手上料。由于产品的是圆柱类的零件,采用180°夹爪,不对...
气象站长 用于在乔治亚理工学院举行的 gt-webdev ccorg 会议的 JS 天气应用演示。 现场演示: :
自述文件-不再支持不再支持此小工具,因为Microsoft已停止使用Windows小工具,并且无法通过YQL访问SEQWater Dam数据。使用请参阅下载小工具文件。建立在目录中创建所有内容的zip文件将.zip扩展名更改为.gadget