CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > WebService开发

使用Google Ajax Search API

作者: 佚名,  出处:IT专家网论坛, 责任编辑: 包春林, 
2008-08-06 04:00
  发出异步请求并不意味着只是与您自己的服务器端程序交互。其实也可以与一些公共API,例如来自Google或Amazon的API进行通信,从而为Web应用程序增加您自己的脚本和服务器端程序所不能提供的更多功能。在本文中,Brett McLaughlin教您如何向公共API,例如Google提供的API发出请求并接收其响应。

  其中大部分搜索类型都可以查阅到,以下是一个简短的总结:

  ·GwebSearch:该对象用于搜索Web,这是Google最著名的一种搜索。

  ·GvideoSearch:该对象查找与搜索词相关的视频。

  ·GblogSearch:该对象专门搜索博客,博客的结构和标记与其它Web内容类型有所不同。

  您已经了解如何预先装载特定的搜索。然后,剩下的只有draw()方法调用了,如清单6所示。您为该方法调用提供了HTML中的一个DOM元素(如果想回顾关于DOM的内容,请参阅参考资料中本系列的前几篇文章)。然后,这个控件将魔术般地出现在窗体上,供用户使用。

  清单6. 绘制搜索控件

  

      function OnLoad() {

  // create the Google search control

  var searchControl = new GSearchControl();

  // These allow you to customize what appears in the search results

  var localSearch = new GlocalSearch();

  searchControl.addSearcher(localSearch);

  searchControl.addSearcher(new GwebSearch());

  searchControl.addSearcher(new GvideoSearch());

  searchControl.addSearcher(new GblogSearch());

  // Tell Google your location to base searches around

  localSearch.setCenterPoint("Dallas, TX");

  // "Draw" the control on the HTML form

  searchControl.draw(document.getElementById("searchcontrol"));

  searchControl.execute("christmas Eve");

  }

  Ajax在哪里?

  到目前为止,还不能明显看出这个简单的搜索框中哪里存在异步性。当然,在Web应用程序中某个地方提供一个Google搜索框确实很棒,但是这毕竟是关于Ajax应用程序的系列文章,而不是关于Google搜索的系列文章。那么,Ajax到底在哪里呢?

  输入搜索词并单击Search按钮,您将注意到一个非常有Ajax风格的响应:搜索结果直接显示出来,并没有页面重新装载过程。这正是大多数Ajax应用程序的标志之一,即无需重新装载页面,直接显示内容更改。显然,这已经超出了常规请求/响应模型的能力范围。但是,XMLHttpRequest在哪里呢?曾经在那么多文章中风光一时的request对象如今何在?除了那个getElementById()方法,DOM和页面操作又在哪里?实际上,这一切都包含在HTML内的两行代码中。

  Google负责处理JavaScript

  第一行要注意的代码尚未多加讨论,该代码如清单7所示。

  清单7. 至关重要的JavaScript文件

  

      < script

  src="http://www.google.com/uds/api?file=uds.js

  &v=1.0&key=

  [YOUR GOOGLE KEY]"

  type="text/javascript">

  这里的语法并不特别值得关注,但要说明的是,Google存放着一个名为uds.js的文件,该文件包含搜索框运行所需的所有JavaScript。这就是使用他人的代码的最真实的感觉:甚至可以让第三方来存放您的应用程序所使用的代码。这一点非常重要,因为Google负责维护工作,当Google升级JavaScript文件时,您就能自动受益。Google不会在不通知您的情况下改变API,所以即使JavaScript文件发生了改变,您的代码仍然可以工作。

  GSearchControl对象

  另一项比较隐蔽的操作就是在onLoad()JavaScript函数中创建的GSearchControl对象。要创建这个对象,只需调用清单8中的代码。

  清单8. 创建一个GSearchControl对象

  

      // create the Google search control

  var searchControl = new GSearchControl();

  所需的HTML代码非常简单:只需使用一个div标记,以及JavaScript可以引用的一个ID,如清单9所示。

  清单9. 用于创建搜索控件的HTML代码

  

      < div id="searchcontrol" />
  同样,Google的代码在幕后处理各种事情。它创建一个新的文本框,一些作为图标的图像,还有一个用于调用某个JavaScript函数的按钮。所以,您免费获得了所有行为。虽然您应该理解其中的基本工作原理,但更方便的是,您可以直接使用该代码,然后编写应用程序剩下的部分。

  Ajax不仅仅是您自己编写的代码

  Ajax应用程序不仅仅是指使用XmlHttpRequest;可以说是一种基于异步方式开发Web应用程序的方法。即使您没有编写任何特定于Ajax的代码,也仍然创建了一个Ajax应用程序。多亏了Google:它做了大部分工作,而您则坐享其成!

  深度探索Google的Ajax Search API

  至此,就该由您来完成这些步骤,并应用于您自己的应用程序。最简单的应用是,将一个div拖入Web页面,并将清单1中显示的JavaScript添加到Web页面中;然后就可以使用Google搜索了。

  但是,有趣的事情不止于此。不必局限于这组特定的选项或控件。可以围绕Web结果、博客结果和视频结果做文章,合适的话,可以将每种结果集成到 Web应用程序中。例如,可以提供多个搜索控件,每个搜索控件专门用于搜索一种类型的结果。还可以将Google搜索控件包括在一个span元素中,放在其余的应用程序内容的中间,而不是放在侧面的一个div中。不管那种情况,都应该确信,Google的搜索是为您的需求而打造的,而不应该修改您自己的应用程序来适应Google。

  结束语

  以本文学到的知识为基础,将Google搜索框和其他Google API应用到您自己的Ajax应用程序中,这应该不难。然而,更重要的是,您应该明白如何使用公共API。例如,Amazon.com 也提供了一个公共API,通过它可以对书籍和Amazon的其它商品执行同样的Web搜索。您可以着手寻找自己喜欢的公共API,从而超越自己编程技能的限制。实际上,很容易创建一个集成了Google、Amazon.com、Flickr等内容的站点。

  虽然弄清楚如何使用Google比较重要(因为Google提供了良好搜索算法和海量的数据存储),但更 重要的是学习如何使用任意的公共API。还应该开始转变观念,不要再将自己的应用程序看作自我编程技能的总和;相反,它可以是通向各种数据的一个大门。而这些数据可能存储在Google、Amazon.com、del.icio.us的服务器上或者其他任何地方。在这些数据的基础上,添加您自己的业务或项目内容,就可以得到非常强大、非常健壮的解决方案,这远远超过您自己编写的作品。

  所以,把眼光放远一点,构建大 应用程序。使用来自各种地方的数据,不要限于自己编写的代码。享受使用他人代码的乐趣,在本系列接下来的文章中,我将谈到更多技术问题,例如数据格式。

共5页。 9 1 2 3 4 5

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i