- 浏览: 304100 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (271)
- jBPM (0)
- WebService (10)
- Flex (0)
- RubyOnRails (1)
- Java (56)
- J2EE (2)
- SQL (5)
- Tapestry (2)
- Dom4j (1)
- Japanese (9)
- English (4)
- JavaScript (3)
- Ajax (12)
- MyDiary (3)
- Log4j (2)
- XML (3)
- UML (1)
- Struts (3)
- Others (8)
- Funny (7)
- ProjectManagement (3)
- Tomcat (1)
- Servlet&Jsp (6)
- Html (4)
- iBATIS (1)
- EasyMock (1)
- Astronomy (1)
- Biology (1)
- Food and Health (0)
最新评论
-
yet8telecom:
good
js数组 sort方法的分析 转自NorthSnow HOME -
imain:
最后的结果是:1,5,3,4,6,2
js数组 sort方法的分析 转自NorthSnow HOME -
lixiaoqing:
最后一个输出结果应该是3,5,1,4,2,6 吧?
js数组 sort方法的分析 转自NorthSnow HOME -
benxiaohai1212:
请问如果输入参数是数组array类型,怎么处理?谢谢!
实例讲解:JAVA SOAP技术 -
netdisk:
这个建议可以用在电子文档管理上
软件文档管理指南
掌握 Ajax,第 9 部分: 使用 Google Ajax Search API在异步应用程序中使用公共 API |
级别: 中级 Brett McLaughlin , 作家,編輯, O'Reilly Media, Inc 2007 年 3 月 01 日 发出异步请求并不意味着只是与您自己的服务器端程序交互。其实也可以与一些公共 API,例如来自 Google 或 Amazon 的 API 进行通信,从而为 Web 应用程序增加您自己的脚本和服务器端程序所不能提供的更多功能。在本文中,Brett McLaughlin 教您如何向公共 API,例如 Google 提供的 API 发出请求并接收其响应。<!----><!----><!----> 到目前为止,这个系列只涉及到客户机 Web 页面向服务器端脚本和程序发出请求的情况。这就是大约 80% 到 90% 的 Ajax 应用程序(使用 有时候,您确实想实现一些功能,但是又不具备实现该目标所需的技术知识,几乎总能遇到这种情况。也许您不知道某些语法,也许不知道如何找出适当的算法。还有些时候,您手头上可能没有用于满足需求的数据或资源(无论是人力资源还是数据资源)。在这些情况下,也许您会想:"唉,要是我能使用其他 人的代码该多好啊!"本文就是要解决这个问题。 在论述本文的实际内容(在 Web 应用程序中使用公共 API)之前,有必要说一说开放源码脚本和程序。浅显地讲,开放源码 是用于描述可以在一定程度上免费在您自己的应用程序中使用和重用的代码的一个术语。相关链接请参阅 参考资料 。简言之,您可以获取别人编写的开放源码,然后将其放入自己的环境中,而不必为之付费,也不会受到(很多)限制。 如果使用开放源码,那么有时候需要为应用程序增加额外的文档,或者将您对开放源码程序或脚本作出的更改反馈给社区。不管如何使用这种程序,最终结果就是,您可以使用这么一块代码:该代码是您不必亲自编写的,或者,如果没有大量的帮助和资源的话,就无法编写该代码,而您手头上并没有这些资源。诸如 Apache 之类的项目为利用他人完成的工作提供了方便 -- 不必担心,他们还希望您使用他们的作品呢! 如果在 IBM developerWorks 上发表文章,而又不提及 Internet 上的文章、教程、白皮书之类的大量参考资料,这无疑很愚蠢。网上有成百上千份教材,您也许可以发现近千篇关于 Ajax 的文章 -- 在本系列中,我就已经发表了近十篇文章!这些文章大部分都有可用的代码、例子、下载以及其他各种类型的资源。 如果您没有能力编写要使用的服务器端程序或脚本,或者找不到所需的开放源码程序或脚本,那么可以打开 Google 网站,试着输入对要找内容的基本描述。然后再在 developerWorks 网站上执行相同的操作。您常常可以发现所需的代码,甚至是整个脚本,并且还有一些有帮助的注释和关于其工作方式的描述。
很多时候,您会遇到非技术问题。您不需要帮助也能编写某个脚本或某段代码,然而,手头上却没有所需的数据或资源。在这些情况下,即使有了教程或者开放源码脚本,也还需要更多的东西。例如,考虑在 Web 页面上增加一个搜索引擎的情况。这样做的前提是您已经有了要搜索的数据 -- 但是,如果要搜索您公司或组织以外的数据,那么该怎么办呢? 如果不是因为技术上的原因,而是因为数据而受到限制,那么,一个公共 API 也许可以帮助您解决问题。公共 API 允许使用其他人的服务器上的程序并使用其他人的数据。通常,API 本身只定义如何与该程序交互。例如,通过一个用于 Google 搜索引擎的公共 API 可以发出搜索请求,但是实际上是由 Google 的代码搜索 Google 的数据,然后将结果返回给您的程序。您不仅可以利用他人在编写这些程序方面的技能,还可以利用远远超过您自己公司所能支持的数据。
使用 Google Ajax Search API 的准备工作 毋庸置疑,Google 仍然是在线时代极其重要的应用。上至老奶奶,下至四岁小孩,即使不理解网上的其它东西是怎么回事,也一定知道 Google。Google 运行着如此流行、如此有用的搜索引擎,并且致力于提供(几乎全部)免费的服务,所以毫不奇怪,它能提供可以在您自己的程序中使用的公共 API。在本节中,您将完成使用 Google API 的准备工作,并清楚地了解如何与 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 的一些有趣的想法。
为了看看实际效果,我们以 Google 提供的示例 Web 页面为例,对它稍做修改,然后看看它会变成什么样子。 清单 1 显示了一个很简单的 Web 页面。将这段代码输入到您喜欢使用的编辑器中,保存为文件,然后将该文件上传到上个小节中提供给 Google 的域或 URL 上。 清单 1. 一个简单的 Google 搜索应用程序的 HTML 代码
注意使用从 Google 获得的密钥替换代码中的粗体文本。当装载该页面时,可以看到类似于图 3 的一个页面。 图 3. 最简单的 Google 搜索窗体 这个页面看上去很简单,但实际上那个小小的控件背后是 Google 的强大搜索能力。 输入一个搜索词并单击 Search ,使 Google 开始工作。很快可以看到一些搜索结果,如图 4 所示。 图 4. Google 的搜索结果 显然,执行一次搜索之后,页面看上去好多了。视频、博客和搜索结果使页面更加美观。因此,您可能想添加一个预搜索 ,即您定义的一个搜索词,当用户装载您的页面时,首先将看到该搜索词的搜索结果。为此,可以将清单 2 中以粗体显示的那行代码添加到 JavaScript 中。 清单 2. 添加预搜索词
显然,您可以将自己的初始搜索词加入代码中,以定制页面装载时所显示的内容。 在继续学习之前,简单看一下这些基本命令的作用。首先,创建一个新的 清单 3. 创建新的 GSearchControl
接着,代码使用 清单 4. 设置新的本地搜索
只要知道对象和方法调用,以上代码无需解释。清单 4 中的代码创建一个新的本地搜索器,然后设置搜索的中心位置。 清单 5 中的这几行代码告诉搜索控件应该执行何种类型的搜索。 清单 5. 允许的搜索类型
其中大部分搜索类型都可以查阅到,以下是一个简短的总结:
您已经了解如何预先装载特定的搜索。然后,剩下的只有 清单 6. 绘制搜索控件
到目前为止,还不能明显看出这个简单的搜索框中哪里存在异步性。当然,在 Web 应用程序中某个地方提供一个 Google 搜索框确实很棒,但是这毕竟是关于 Ajax 应用程序的系列文章,而不是关于 Google 搜索的系列文章。那么,Ajax 到底在哪里呢? 输入搜索词并单击 Search
按钮,您将注意到一个非常有 Ajax 风格的响应:搜索结果直接显示出来,并没有页面重新装载过程。这正是大多数 Ajax 应用程序的标志之一,即无需重新装载页面,直接显示内容更改。显然,这已经超出了常规请求/响应模型的能力范围。但是, 第一行要注意的代码尚未多加讨论,该代码如清单 7 所示。 清单 7. 至关重要的 JavaScript 文件
这里的语法并不特别值得关注,但要说明的是,Google 存放着一个名为 uds.js 的文件,该文件包含搜索框运行所需的所有 JavaScript。这就是使用他人的代码的最真实的感觉:甚至可以让第三方来存放您的应用程序所使用的代码。这一点非常重要,因为 Google 负责维护工作,当 Google 升级 JavaScript 文件时,您就能自动受益。Google 不会在不通知您的情况下改变 API,所以即使 JavaScript 文件发生了改变,您的代码仍然可以工作。 另一项比较隐蔽的操作就是在 清单 8. 创建一个 GSearchControl 对象
所需的 HTML 代码非常简单:只需使用一个 清单 9. 用于创建搜索控件的 HTML 代码
同样,Google 的代码在幕后处理各种事情。它创建一个新的文本框,一些作为图标的图像,还有一个用于调用某个 JavaScript 函数的按钮。所以,您免费获得了所有行为。虽然您应该理解其中的基本工作原理,但更方便的是,您可以直接使用该代码,然后编写应用程序剩下的部分。 Ajax 应用程序不仅仅是指使用
至此,就该由您来完成这些步骤,并应用于您自己的应用程序。最简单的应用是,将一个 但是,有趣的事情不止于此。不必局限于这组特定的选项或控件。可以围绕 Web 结果、博客结果和视频结果做文章,合适的话,可以将每种结果集成到 Web 应用程序中。例如,可以提供多个搜索控件,每个搜索控件专门用于搜索一种类型的结果。还可以将 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 的服务器上或者其他任何地方。在这些数据的基础上,添加您自己的业务或项目内容,就可以得到非常强大、非常健壮的解决方案,这远远超过您自己编写的作品。 所以,把眼光放远一点,构建大 应用程序。使用来自各种地方的数据,不要限于自己编写的代码。享受使用他人代码的乐趣,在本系列接下来的文章中,我将谈到更多技术问题,例如数据格式。 |
发表评论
-
初学Ajax
2006-12-14 14:53 1165一、开门见山 这些时间,瞎子也看得见,AJAX正大 ... -
掌握 Ajax,第 1 部分
2008-03-05 15:32 832本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 2 部分
2008-03-05 15:36 770本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 3 部分
2008-03-05 15:40 846本文转自:http://www.ibm.com/develop ... -
掌握 Ajax,第 4 部分
2008-03-06 16:19 724掌握 Ajax,第 4 部分: 利用 DOM 进行 ... -
掌握 Ajax,第 5 部分
2008-03-06 16:20 778掌握 Ajax,第 5 部分: 操纵 DOM 使用 ... -
掌握 Ajax,第 6 部分
2008-03-06 16:21 728掌握 Ajax,第 6 部分: 建立基于 DOM 的 ... -
掌握 Ajax,第 7 部分
2008-03-07 17:17 708掌握 Ajax,第 7 部分: 在请求和响应中使用 ... -
掌握 Ajax,第 8 部分
2008-03-07 17:18 692掌握 Ajax,第 8 部分: 在请求和响应中使用 ... -
掌握 Ajax,第 10 部分
2008-03-24 13:38 742developerWorks 中国 > ... -
掌握 Ajax,第 11 部分
2008-03-24 13:39 886掌握 Ajax,第 11 部分: 服务器端的 JSO ...
相关推荐
### 掌握 Ajax 第 9 部分:使用 Google Ajax Search API #### 知识点概述 在本文档中,作者Brett McLaughlin详细介绍了如何利用公共API(特别是Google Ajax Search API)来增强Web应用程序的功能。这篇文章适用于...
掌握 Ajax,第 1 部分 Ajax 入门简介
掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM ...
### 掌握Ajax系列之第五部分:操纵DOM详解 #### 使用JavaScript即时更新Web页面 在“掌握Ajax”系列的第五部分中,我们深入探讨了如何使用JavaScript操纵文档对象模型(DOM),以实现实时更新Web页面,而无需进行...
掌握Ajax--第1部分 Ajax简介 掌握Ajax--第2部分 使用JavaScript和Ajax发出异步请求 掌握Ajax--第3部分 Ajax中的高级请求和响应 掌握Ajax--第4部分 利用DOM进行Web响应 掌握Ajax--第10部分 使用JSON 进行数据传输
### 掌握Ajax系列之四:利用DOM进行Web响应 #### 深入理解DOM:构建Web响应的核心 在探讨如何利用DOM(Document Object Model,文档对象模型)进行Web响应之前,我们首先需要理解DOM的基本概念及其在Web开发中的...
综上所述,要精通AJAX技术,不仅要熟练掌握`XMLHttpRequest`对象的使用,还要深刻理解HTTP就绪状态、HTTP状态代码以及不同类型的HTTP请求。通过这些基础知识的学习,开发者可以在遇到问题时更快地进行调试和解决问题...
标题和描述均指向了一个主题,即“掌握Ajax的第六部分:建立基于DOM的Web应用程序”。这一部分的内容聚焦于如何在不刷新整个页面的情况下,利用DOM(Document Object Model,文档对象模型)来改变网页的界面。这是一...
### Ajax简介及核心技术解析 ...总之,学习和掌握Ajax对于Web开发人员来说是非常重要的。随着未来网络技术的发展,Ajax将继续发挥其重要作用,并且有可能会引入更多的新技术来进一步增强Web应用的性能和用户体验。
### 掌握Ajax系列之服务器端的JSON:深入解析与应用 #### 深入理解JSON在Ajax中的角色 在《掌握 Ajax第 11 部分--服务器端的 JSON.pdf》一文中,作者Brett D. McLaughlin详细阐述了JSON在Ajax应用程序中的重要性,...
### Ajax与XML:深入理解XML在Ajax中的角色 在探讨Ajax与XML的深层次关系之前,让我们首先澄清一个普遍存在的误解。尽管“Ajax”这个术语中包含“XML”,但这并不意味着XML是实现Ajax功能的必要条件。实际上,...
### 掌握Ajax第二部分:使用JavaScript和Ajax发出异步请求 #### XMLHttpRequest对象与Web2.0 在探讨Ajax和JavaScript如何发出异步请求之前,我们先简要回顾一下Web2.0的概念及其与传统Web1.0的区别。Web1.0时代,...
通过熟练掌握Ajax,开发者可以构建更高效、更互动的Web应用。同时,理解DOM的结构和操作,以及如何利用JSON进行数据交换,是提升Ajax应用性能的关键。而Google Ajax Search API等工具,则提供了丰富的功能,让开发者...
通过这个系列的学习,你将全面掌握Ajax技术,包括其基本概念、请求与响应的处理、DOM操作、以及实际应用示例。这些知识点不仅有助于提升网页开发技能,还能让你理解Web开发中的异步处理和数据交换机制。
在本系列的第9部分,我们将探讨如何利用Google提供的Ajax Search API来拓展你的异步应用程序的功能。 Google Ajax Search API是一个接口,允许开发人员在其网页中嵌入动态搜索功能,能够实时地从Google的搜索索引中...
9. **轻松掌握Ajax.net系列教程十一.doc**:可能涉及到用户体验设计,如何利用Ajax提升用户体验,比如动画过渡和反馈机制。 10. **轻松掌握Ajax.net系列教程十三.doc**:可能讲解了如何在移动设备或不同浏览器上...
这段代码展示了如何使用Ajax技术在用户提交表单时发送异步请求,并根据服务器响应更新页面的部分内容。 #### 六、结论 通过以上分析,我们可以看出Ajax技术通过异步数据交换,极大提升了Web应用的性能和用户体验。...
### 掌握AJAX:真正详解 #### 一、引言 随着互联网技术的飞速发展,用户体验成为了网站设计中的重要考量因素之一。AJAX(Asynchronous JavaScript and XML)作为一种革新性的技术,使得Web应用程序能够提供更加流畅...
【标题】"掌握AJAX_wrox press"涵盖了AJAX(Asynchronous JavaScript and XML)技术的深入理解和实践,这是Web开发中的一个关键概念,它允许在不刷新整个页面的情况下与服务器进行交互,提升用户体验。wrox press是...
本资料“掌握Ajax”将深入讲解Ajax的工作原理、应用场景及实现方法。 1. **Ajax工作原理** - 异步:Ajax的核心特性,它允许Web应用在不打断用户操作的情况下向服务器发送请求。 - XMLHttpRequest:JavaScript内置...