掌握Ajax,第9部分: 使用Google Ajax Search API

在异步应用程序中使用公共 API

简介:发出异步请求并不意味着只是与您自己的服务器端程序交互。其实也可以与一些公共 API,例 如来自 Google 或 Amazon 的 API 进行通信,从而为 Web 应用程序增加您自己的脚本和服务器端程序所 不能提供的更多功能。在本文中,Brett McLaughlin 教您如何向公共 API,例如 Google 提供的 API 发 出请求并接收其响应。

到目前为止,这个系列只涉及到客户机 Web 页面向服务器端脚本和程序发出请求的情况。这就是大约 80% 到 90% 的 Ajax 应用程序(使用 XMLHttpRequest 对象的异步 Web 应用程序)的工作方式。然而 ,这种方法有很严重的局限性:您将受到自己才智和编程技能的限制,就算不是这样,最起码也要受到公 司团队中的程序员的才智和编程技能的限制。

有时候,您确实想实现一些功能,但是又不具备实现该目标所需的技术知识,几乎总能遇到这种情况 。也许您不知道某些语法,也许不知道如何找出适当的算法。还有些时候,您手头上可能没有用于满足需 求的数据或资源(无论是人力资源还是数据资源)。在这些情况下,也许您会想:"唉,要是我能使用其 他人的代码该多好啊!"本文就是要解决这个问题。

开放源码脚本和程序

在论述本文的实际内容(在 Web 应用程序中使用公共 API)之前,有必要说一说开放源码脚本和程序 。浅显地讲,开放源码 是用于描述可以在一定程度上免费在您自己的应用程序中使用和重用的代码的一 个术语。相关链接请参阅 参考资料。简言之,您可以获取别人编写的开放源码,然后将其放入自己的环 境中,而不必为之付费,也不会受到(很多)限制。

如果使用开放源码,那么有时候需要为应用程序增加额外的文档,或者将您对开放源码程序或脚本作 出的更改反馈给社区。不管如何使用这种程序,最终结果就是,您可以使用这么一块代码:该代码是您不 必亲自编写的,或者,如果没有大量的帮助和资源的话,就无法编写该代码,而您手头上并没有这些资源 。诸如 Apache 之类的项目为利用他人完成的工作提供了方便 -- 不必担心,他们还希望您使用他们的作 品呢!

在线文章和教程

如果在 IBM developerWorks 上发表文章,而又不提及 Internet 上的文章、教程、白皮书之类的大 量参考资料,这无疑很愚蠢。网上有成百上千份教材,您也许可以发现近千篇关于 Ajax 的文章 -- 在本 系列中,我就已经发表了近十篇文章!这些文章大部分都有可用的代码、例子、下载以及其他各种类型的 资源。

如果您没有能力编写要使用的服务器端程序或脚本,或者找不到所需的开放源码程序或脚本,那么可 以打开 Google 网站,试着输入对要找内容的基本描述。然后再在 developerWorks 网站上执行相同的操 作。您常常可以发现所需的代码,甚至是整个脚本,并且还有一些有帮助的注释和关于其工作方式的描述 。

使用公共 API

很多时候,您会遇到非技术问题。您不需要帮助也能编写某个脚本或某段代码,然而,手头上却没有 所需的数据或资源。在这些情况下,即使有了教程或者开放源码脚本,也还需要更多的东西。例如,考虑 在 Web 页面上增加一个搜索引擎的情况。这样做的前提是您已经有了要搜索的数据 -- 但是,如果要搜 索您公司或组织以外的数据,那么该怎么办呢?

如果不是因为技术上的原因,而是因为数据而受到限制,那么,一个公共 API 也许可以帮助您解决问 题。公共 API 允许使用其他人的服务器上的程序并使用其他人的数据。通常,API 本身只定义如何与该 程序交互。例如,通过一个用于 Google 搜索引擎的公共 API 可以发出搜索请求,但是实际上是由 Google 的代码搜索 Google 的数据,然后将结果返回给您的程序。您不仅可以利用他人在编写这些程序 方面的技能,还可以利用远远超过您自己公司所能支持的数据。

时间: 2024-10-31 11:31:52

掌握Ajax,第9部分: 使用Google Ajax Search API的相关文章

Google (Local) Search API的简单使用介绍_javascript技巧

花了两天的时间来用Google的API来做这么一个小东西,其实真正的实现代码不是很多,十几行而已.费时间的工作是了解各个API的功能以及调试JavaScript. 下面简单介绍一下这次我用到的几个函数吧. •构造函数google.search.LocalSearch() 这其实是创建了一个LocalSearch的Service,这个Service和其他Service(News, Blog, Web)一样,是供SearchControl使用的.这些Service决定了SearchControl的能

Google AJAX 搜索 API实现代码_javascript技巧

Google AJAX 搜索 API文档:http://code.google.com/intl/zh-CN/apis/websearch/docs/ 复制代码 代码如下: <!DOCTYPE html> <html> <head> <title>Google AJAX 搜索 API</title> <style type="text/css"> #searchcontrol .gsc-control { widt

解决Gravatar头像、Google fonts和Google ajax不能使用的方法

Gravatar头像现在大陆地区偶尔无法访问,还有各种google服务也用不了.对于"一枚程序员"来说是不能容忍的. 于是麦葱弄了个解决之法--使用nginx反向代理Gravatar头像.Google fonts和Google ajax. 反代之前需要确定nginx已经安装了proxy_cache模块并配置好路径及参数. 下面是麦葱在nginx.conf中配置的代码: http {     #其他代码...#     proxy_connect_timeout 5;     proxy

Microsoft Ajax CDN与Google Ajax CDN 你来试试哪个快

Microsoft Ajax CDN http://www.asp.net/ajaxlibrary/cdn.ashx Google Ajax CDN http://code.google.com/intl/zh-CN/apis/ajaxlibs/documentation/index.html   今天小看了一下两家,其实Google提供的类库比MS要多些,Ms只提供了Jquery以及MsAjax. 但是我在工作机和服务器上分别Ping了一下2个服务器   服务器: 工作机:   这不禁对Goo

如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据?

问题描述 如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据? 如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据? 解决方案 参考这个:http://blog.csdn.net/htsnoopy/article/details/7094224使用C#的HttpWebRequest模拟登陆网站 解决方案二: 你可以分析下, 他的ajax请求地址, 是不是传和它一样的参数去就会返回数据. 如果不是, 你只能模拟登陆网站.

对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解_jquery

虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或其它参数.同时在工作中,我们还会发现,有一些ajax请求的数据,对实时性要求不高,即使我们把第一次请求到的这些数据缓存起来,然后当相同请求再次发起时直接拿之前缓存的数据返回也不会对相关功能有影响,通过这种手工的缓存控制,减少了ajax请求,多多少少也能帮助我们提高网页的性能.本文介绍我自己关于这两方

ajax入门教程之XMLHttpRequest与$.ajax使用说明

对于Ajax,最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作. 创建XMLHttpRequest对象 对于IE浏览器:  代码如下 复制代码 xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 对于其他浏览器:  代码如下 复制代码 xmlHttp = new XMLHttpRequest(); 不同的浏览器对javascript中的XMLHttpRequest对象的支持是不一样的,所以需要根据情况做一下

jQuery实现ajax的叠加和停止(终止ajax请求)_jquery

jQuery实现ajax的叠加和停止的关键代码如下所示: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery中终止Ajax请求</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

Ajax 通过城市名获取数据(全国天气预报API)_AJAX相关

预览图(比较简单粗糙) 聚合数据全国天气预报接口:https://www.juhe.cn/docs/api/id/39 接口地址:http://v.juhe.cn/weather/index 支持格式:json/xml 请求方式:get 请求示例:http://v.juhe.cn/weather/index?format=2&cityname=%E8%8B%8F%E5%B7%9E&key=您申请的KEY 调用样例及调试工具:API测试工具 请求参数说明: 名称 类型 必填 说明 cityn