使用 Google Ajax Search API 的准备工作
毋庸置疑,Google 仍然是在线时代极其重要的应用。上至老奶奶,下至四岁小孩,即使不理解网上的其它东西是怎么回事,也一定知道 Google。Google 运行着如此流行、如此有用的搜索引擎,并且致力于提供(几乎全部)免费的服务,所以毫不奇怪,它能提供可以在您自己的程序中使用的公共 API。在本节中,您将完成使用 Google API 的准备工作,并清楚地了解如何与 Google 进行异步应用程序会话。
从 Google 获取开发者密钥
本文着重讨论 Google 的 Ajax Search API。通过访问 Google Ajax Search API 主页(如图 1 所示),可以找到关于这个 API 的更多信息。
图 1. Google 的 Ajax Search API 页面
第 一步是单击 Sign up for a Google AJAX Search API key 链接。这时会进入另一个页面,在此页面上可以登记使用这个 Google API。您需要接受所有使用条款(我认为所有条款都没有恶意)并提供您的应用程序所在 Web 站点的 URL(如图 2 所示)。
图 2. 登记使用 Google 的 Ajax Search API
阅 读完协议并勾选了复选框之后,输入 URL,单击 Generate API Key,等待一二秒钟。此时必须登录 Google,或者创建一个帐户。这是一个相当标准的过程,您应该可以自己完成。完成上述操作后,可以看到一个回复页面,其中给出了一个非常长的密钥,并 确认您的 URL,甚至还给出一个示例页面。这个密钥看上去类似于以下形式:
Google 的 API 文档
在 开始使用获得的密钥之前,要花点时间阅读一下 Google 的 API 文档(在提供密钥的页面的底端有一个链接,本文的参考资料中也提供了该链接)。即使您通过本文有了很好的初步认识,仍然会发现 Google 的 API 文档是一个很好的参考资料,通过该文档可能会得到关于如何在您自己特有的应用程序中、站点上使用 Google 的一些有趣的想法。
最简单的 Google 搜索 Web 应用程序
为了看看实际效果,我们以 Google 提供的示例 Web 页面为例,对它稍做修改,然后看看它会变成什么样子。
创建搜索框
清单 1 显示了一个很简单的 Web 页面。将这段代码输入到您喜欢使用的编辑器中,保存为文件,然后将该文件上传到上个小节中提供给 Google 的域或 URL 上。
清单 1. 一个简单的 Google 搜索应用程序的 HTML 代码
注意使用从 Google 获得的密钥替换代码中的粗体文本。当装载该页面时,可以看到类似于图 3 的一个页面。
图 3. 最简单的 Google 搜索窗体
这个页面看上去很简单,但实际上那个小小的控件背后是 Google 的强大搜索能力。
运行搜索
输入一个搜索词并单击 Search,使 Google 开始工作。很快可以看到一些搜索结果,如图 4 所示。
图 4. Google 的搜索结果
添加预搜索页面
显 然,执行一次搜索之后,页面看上去好多了。视频、博客和搜索结果使页面更加美观。因此,您可能想添加一个预搜索,即您定义的一个搜索词,当用户装载您的页 面时,首先将看到该搜索词的搜索结果。为此,可以将清单 2 中以粗体显示的那行代码添加到 JavaScript 中。
清单 2. 添加预搜索词
显然,您可以将自己的初始搜索词加入代码中,以定制页面装载时所显示的内容。
JavaScript 解析
在继续学习之前,简单看一下这些基本命令的作用。首先,创建一个新的 GSearchControl,如清单 3 所示。以下结构可用于执行所有搜索任务:
清单 3. 创建新的 GSearchControl
接着,代码使用 GlocalSearch 设置一个新的本地搜索;这是特殊的 Google 结构,通过它可以对特定位置执行搜索。这个本地搜索如清单 4 所示。
清单 4. 设置新的本地搜索
只要知道对象和方法调用,以上代码无需解释。清单 4 中的代码创建一个新的本地搜索器,然后设置搜索的中心位置。
清单 5 中的这几行代码告诉搜索控件应该执行何种类型的搜索。
清单 5. 允许的搜索类型
其中大部分搜索类型都可以查阅到,以下是一个简短的总结:
GwebSearch:该对象用于搜索 Web,这是 Google 最著名的一种搜索。
GvideoSearch:该对象查找与搜索词相关的视频。
GblogSearch:该对象专门搜索博客,博客的结构和标记与其它 Web 内容类型有所不同。
您 已经了解如何预先装载特定的搜索。然后,剩下的只有 draw() 方法调用了,如清单 6 所示。您为该方法调用提供了 HTML 中的一个 DOM 元素(如果想回顾关于 DOM 的内容,请参阅 参考资料 中本系列的前几篇文章)。然后,这个控件将魔术般地出现在窗体上,供用户使用。
清单 6. 绘制搜索控件
Ajax 在哪里?
到目前为止,还不能明显看出这个简单的搜索框中哪里存在异步性。当然,在 Web 应用程序中某个地方提供一个 Google 搜索框确实很棒,但是这毕竟是关于 Ajax 应用程序的系列文章,而不是关于 Google 搜索的系列文章。那么,Ajax 到底在哪里呢?
输 入搜索词并单击 Search 按钮,您将注意到一个非常有 Ajax 风格的响应:搜索结果直接显示出来,并没有页面重新装载过程。这正是大多数 Ajax 应用程序的标志之一,即无需重新装载页面,直接显示内容更改。显然,这已经超出了常规请求/响应模型的能力范围。但是,XMLHttpRequest 在哪里呢?曾经在那么多文章中风光一时的 request 对象如今何在?除了那个 getElementById() 方法,DOM 和页面操作又在哪里?实际上,这一切都包含在 HTML 内的两行代码中。
Google 负责处理 JavaScript
第一行要注意的代码尚未多加讨论,该代码如清单 7 所示。
清单 7. 至关重要的 JavaScript 文件
这 里的语法并不特别值得关注,但要说明的是,Google 存放着一个名为 uds.js 的文件,该文件包含搜索框运行所需的所有 JavaScript。这就是使用他人的代码的最真实的感觉:甚至可以让第三方来存放您的应用程序所使用的代码。这一点非常重要,因为 Google 负责维护工作,当 Google 升级 JavaScript 文件时,您就能自动受益。Google 不会在不通知您的情况下改变 API,所以即使 JavaScript 文件发生了改变,您的代码仍然可以工作。
GSearchControl 对象
另一项比较隐蔽的操作就是在 onLoad() JavaScript 函数中创建的 GSearchControl 对象。要创建这个对象,只需调用清单 8 中的代码。
清单 8. 创建一个 GSearchControl 对象
所需的 HTML 代码非常简单:只需使用一个 div 标记,以及 JavaScript 可以引用的一个 ID,如清单 9 所示。
清单 9. 用于创建搜索控件的 HTML 代码
Google 的 JavaScript 是什么样子?
Google 的 JavaScript 并不太容易理解。首先,uds.js JavaScript 文件找到一些本地设置,处理一些 Google 特有的任务,验证您的 Google 密钥,然后装载另外两个脚本:[url]http://www.google.com/uds/js/locale/en/uistrings.js[/url] 和 [url]http://www.google.com/uds/js/uds_compiled.js[/url]。如果有兴趣的话,您可以找出并仔细理解这两个文件,但是要 注意:完全理解先进的代码是很困难的,而且其格式令人生畏!对于大部分人来说,只需知道如何使用这些文件,而不必理解其中每一行的意义。
同 样,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 的服务器上或者其他任何地方。在这些数据的基础上,添加您自己的业务或项目内容,就可以得到非常强大、非常健壮的解决方案,这远远超过您自己编写的作品。
所以,把眼光放远一点,构建大 应用程序。使用来自各种地方的数据,不要限于自己编写的代码。享受使用他人代码的乐趣,在本系列接下来的文章中,我将谈到更多技术问题,例如数据格式。
关于作者
Brett McLaughlin 从 Logo 时代就开始使用计算机。(还记得那个小三角吗?)近年来,他已经成为 Java 和 XML 社区最著名的作者和程序员之一。他曾经在 Nextel Communications 实现过复杂的企业系统,在 Lutris Technologies 编写过应用服务器,最近,他在 O'Reilly Media, Inc. 继续撰写和编辑这方面的图书。Brett 即将出版的新书 Head Rush Ajax 为 Ajax 带来了获奖的革命性 Head First 方法。最近的著作 Java 1.5 Tiger: A Developer's Notebook 是关于 Java 技术最新版本的第一本书。经典的 Java and XML 依然是在 Java 语言中使用 XML 技术的权威著作。
原文链接(摘抄):[url]http://www.matrix.org.cn/resource/article/2007-03-07/Google+Ajax+Search_80fd0e53-cc41-11db-b4f4-dd5a5e123c5c.html[/url]
注意 文中的图片有出入,可以去Google Search API ([url]http://code.google.com/apis/ajaxsearch/signup.html[/url])去看,要有Google帐号,google给出具体的网页代码
毋庸置疑,Google 仍然是在线时代极其重要的应用。上至老奶奶,下至四岁小孩,即使不理解网上的其它东西是怎么回事,也一定知道 Google。Google 运行着如此流行、如此有用的搜索引擎,并且致力于提供(几乎全部)免费的服务,所以毫不奇怪,它能提供可以在您自己的程序中使用的公共 API。在本节中,您将完成使用 Google API 的准备工作,并清楚地了解如何与 Google 进行异步应用程序会话。
从 Google 获取开发者密钥
本文着重讨论 Google 的 Ajax Search API。通过访问 Google Ajax Search API 主页(如图 1 所示),可以找到关于这个 API 的更多信息。
![p_w_picpath](http://www.matrix.org.cn/resource/upload/forum/2007_03_07_081345_QiRzatLSmk.jpg)
图 1. Google 的 Ajax Search API 页面
第 一步是单击 Sign up for a Google AJAX Search API key 链接。这时会进入另一个页面,在此页面上可以登记使用这个 Google API。您需要接受所有使用条款(我认为所有条款都没有恶意)并提供您的应用程序所在 Web 站点的 URL(如图 2 所示)。
![p_w_picpath](http://www.matrix.org.cn/resource/upload/forum/2007_03_07_081418_PkJNVYhLwA.jpg)
图 2. 登记使用 Google 的 Ajax Search API
阅 读完协议并勾选了复选框之后,输入 URL,单击 Generate API Key,等待一二秒钟。此时必须登录 Google,或者创建一个帐户。这是一个相当标准的过程,您应该可以自己完成。完成上述操作后,可以看到一个回复页面,其中给出了一个非常长的密钥,并 确认您的 URL,甚至还给出一个示例页面。这个密钥看上去类似于以下形式:
ABQIAAAAjtuhyCXrSHOFSz7zK0f8phSA9fWLQO3TbB2M9BRePlYkXeAu8lHeUgfgRs0eIWUaXg
Google 的 API 文档
在 开始使用获得的密钥之前,要花点时间阅读一下 Google 的 API 文档(在提供密钥的页面的底端有一个链接,本文的参考资料中也提供了该链接)。即使您通过本文有了很好的初步认识,仍然会发现 Google 的 API 文档是一个很好的参考资料,通过该文档可能会得到关于如何在您自己特有的应用程序中、站点上使用 Google 的一些有趣的想法。
最简单的 Google 搜索 Web 应用程序
为了看看实际效果,我们以 Google 提供的示例 Web 页面为例,对它稍做修改,然后看看它会变成什么样子。
创建搜索框
清单 1 显示了一个很简单的 Web 页面。将这段代码输入到您喜欢使用的编辑器中,保存为文件,然后将该文件上传到上个小节中提供给 Google 的域或 URL 上。
清单 1. 一个简单的 Google 搜索应用程序的 HTML 代码
......
<link href="http://www.google.com/uds/css/gsearch.css"
type="text/css" rel="stylesheet" />
<script
src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=
YOUR KEY HERE
"
type="text/javascript"> </script>
<script language="Javascript" type="text/javascript">
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"));
}
</script>
<div id="searchcontrol" />
......
注意使用从 Google 获得的密钥替换代码中的粗体文本。当装载该页面时,可以看到类似于图 3 的一个页面。
![p_w_picpath](http://www.matrix.org.cn/resource/upload/forum/2007_03_07_081617_ofALQIRrAy.jpg)
图 3. 最简单的 Google 搜索窗体
这个页面看上去很简单,但实际上那个小小的控件背后是 Google 的强大搜索能力。
运行搜索
输入一个搜索词并单击 Search,使 Google 开始工作。很快可以看到一些搜索结果,如图 4 所示。
![p_w_picpath](http://www.matrix.org.cn/resource/upload/forum/2007_03_07_081648_CkTXoRpnge.jpg)
图 4. Google 的搜索结果
添加预搜索页面
显 然,执行一次搜索之后,页面看上去好多了。视频、博客和搜索结果使页面更加美观。因此,您可能想添加一个预搜索,即您定义的一个搜索词,当用户装载您的页 面时,首先将看到该搜索词的搜索结果。为此,可以将清单 2 中以粗体显示的那行代码添加到 JavaScript 中。
清单 2. 添加预搜索词
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");
}
显然,您可以将自己的初始搜索词加入代码中,以定制页面装载时所显示的内容。
JavaScript 解析
在继续学习之前,简单看一下这些基本命令的作用。首先,创建一个新的 GSearchControl,如清单 3 所示。以下结构可用于执行所有搜索任务:
清单 3. 创建新的 GSearchControl
function OnLoad() {
// Create the Google search control
var searchControl = new GSearchControl();
...
}
接着,代码使用 GlocalSearch 设置一个新的本地搜索;这是特殊的 Google 结构,通过它可以对特定位置执行搜索。这个本地搜索如清单 4 所示。
清单 4. 设置新的本地搜索
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();
...
// Tell Google your location to base searches around
localSearch.setCenterPoint("Dallas, TX");
...
}
只要知道对象和方法调用,以上代码无需解释。清单 4 中的代码创建一个新的本地搜索器,然后设置搜索的中心位置。
清单 5 中的这几行代码告诉搜索控件应该执行何种类型的搜索。
清单 5. 允许的搜索类型
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");
...
}
其中大部分搜索类型都可以查阅到,以下是一个简短的总结:
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"> </script>
这 里的语法并不特别值得关注,但要说明的是,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 是什么样子?
Google 的 JavaScript 并不太容易理解。首先,uds.js JavaScript 文件找到一些本地设置,处理一些 Google 特有的任务,验证您的 Google 密钥,然后装载另外两个脚本:[url]http://www.google.com/uds/js/locale/en/uistrings.js[/url] 和 [url]http://www.google.com/uds/js/uds_compiled.js[/url]。如果有兴趣的话,您可以找出并仔细理解这两个文件,但是要 注意:完全理解先进的代码是很困难的,而且其格式令人生畏!对于大部分人来说,只需知道如何使用这些文件,而不必理解其中每一行的意义。
同 样,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 的服务器上或者其他任何地方。在这些数据的基础上,添加您自己的业务或项目内容,就可以得到非常强大、非常健壮的解决方案,这远远超过您自己编写的作品。
所以,把眼光放远一点,构建大 应用程序。使用来自各种地方的数据,不要限于自己编写的代码。享受使用他人代码的乐趣,在本系列接下来的文章中,我将谈到更多技术问题,例如数据格式。
关于作者
Brett McLaughlin 从 Logo 时代就开始使用计算机。(还记得那个小三角吗?)近年来,他已经成为 Java 和 XML 社区最著名的作者和程序员之一。他曾经在 Nextel Communications 实现过复杂的企业系统,在 Lutris Technologies 编写过应用服务器,最近,他在 O'Reilly Media, Inc. 继续撰写和编辑这方面的图书。Brett 即将出版的新书 Head Rush Ajax 为 Ajax 带来了获奖的革命性 Head First 方法。最近的著作 Java 1.5 Tiger: A Developer's Notebook 是关于 Java 技术最新版本的第一本书。经典的 Java and XML 依然是在 Java 语言中使用 XML 技术的权威著作。
原文链接(摘抄):[url]http://www.matrix.org.cn/resource/article/2007-03-07/Google+Ajax+Search_80fd0e53-cc41-11db-b4f4-dd5a5e123c5c.html[/url]
注意 文中的图片有出入,可以去Google Search API ([url]http://code.google.com/apis/ajaxsearch/signup.html[/url])去看,要有Google帐号,google给出具体的网页代码
转载于:https://blog.51cto.com/mojiedao/20714