13.6 总结
在本章中我们看到,混搭并非是一堆汽车撞到一起的结果,而是一种将多个源头获取的内容组合在一起的Web页面或应用。我们所完成的小示例,将Yahoo! Maps和Flickr Photo Services的内容组合到一起,它证明了Ajax与开放API结合之后的强大威力,能让我们很容易创造出这样的混搭式应用。
我们创建的应用也是一个自包含的JavaScript类,不需要在使用它的HTML页面里加入额外的代码(当然,创建类的实例所必需的代码除外)。所以我们创建的既是一个应用也是一个组件(component)。事实上,因为在这个应用/组件中我们没有使用任何全局变量或全局的元素ID,所以甚至可以在一个页面中容纳它的多个实例。尽管对于我们的这个特定组件来说,多个实例没有什么意义,但是你可以在自己的组件中应用本章中所使用的技巧,这样就可以在每个页面中多次使用同一个组件。
本示例结合运用了本书前后所探讨过的大量技巧。我们信奉面向对象技术、发挥Prototype库的功能、发起一个又一个Ajax请求、通过跨服务器代理调用可用的开放API,并且对大量的事件进行处理。
此外,你再次看到了Prototype程序库中的各个类和函数是如何让你的JavaScript代码更加简练、更加模块化、更加有条理的。一个例子就是我们在Trip-o-matic应用中大量地使用了Prototype给JavaScript数组所添加的each()方法。将数组元素的处理过程从传统的for循环中移出并模块化为以单个数组元素为参数的迭代函数,不仅将元素的处理代码分离到了一个简洁明了易于理解的函数中,而且也有助于代码重用--循环以外的代码也可以传入适当类型的对象来直接调用迭代函数。
我们再次使用了Yahoo! Maps API来显示地图。Yahoo! Map API还有许多其他功能,利用这些功能,你甚至可以让你的地图应用变得更具有交互性。
你还进一步学习了Flickr的照片服务,特别是如何使用照片集来对照片进行分组。不过我们的讨论又一次仅仅只是触及了所有可用功能的冰山一角。那些想使用交互式照片的站点和应用可以利用Flickr完成许多功能,远远超出我们这里探索过的范围。
所以,请看看在Web上有哪些内容可以通过开放API为你所用。肯定有一个组合能引起你的共鸣,激发你的创意--创造一个你自己的混搭吧!
最新插播新闻!
最近有一个叫做Yahoo! Pipes(http://pipes.yahoo.com)的新的Yahoo!服务上线了,它可算是说明混搭威力的最精华(至少到目前为止)的例子!它带有一个基于Web的可视化的混搭生成器,可以通过拖放来组合程序原语、默认数据源(Google Base、Yahoo!,等等)以及许多其他东西。试试看它吧!
| 回书目 上一节 下一节 |