AJAX In Google 初探

Ajax之谷歌地图 通过ajax,可以应用于web界面的谷歌地图方法,在LBS技术大行其道当今,该方法是否有一席之地呢? 立即下载

Google,囊括了美国顶尖的Web开发高手,开发的Gmail、Google Reader、Google Maps也是Web2.0应用的经典。

它们都是AJAX技术的杰出应用,然而有趣的是,他们使用的技术却各有不同。这也许是因为不同的开发小组的风格不同,但一些细节却透露出这也许是Google高手们针对不同应用的不同需求采用了不同的实现方法,以达到最完美的效果。真正的高手的高就在于此吧。

下面来分别看看这几个应用。

1、Gmail:

Gmail使用自己独特的协议在HTTP层进行浏览器和Web服务器之间的通信。

首先,浏览器端通过Javascript XmlHttpRequest向 服务器发送请求,比如请求Inbox信息的URL为: /gmail?search=inbox&view=tl&start=0&init=1&zx=,而请求所有未读信息 的URL为:/gmail?search=query&q=is%3Aunread&view=tl&start=0& init=1&zx=。然后,服务器返回称为DataPack的数据块。

Google做的第一个有意思的事情是,这个DataPack并不是基于XML的,而是一个基于Javascript数组格式的HTML文件。它可 以包括多个DataItem,而一个DataItem是由一个封装函数包括的Javascript数组,例如这样的格式:D([”ts”, 0,50,106,0,”Inbox”,”fd36721220″,154]); 这里的D()是一个实时解析函数,而”ts”是DataItem的类型。

这样做的好处是:客户端Javascript程序可以避免对XML的解析而直接使用这些数据,从而能提高处理速度并节省系统资源。

此外,Gmail客户端每隔2分钟会自动向服务器发送刷新请求,在这里Gmail又做了一个优化。那就是在刷新请求里有一个时标(又有点象 CheckSum)。然后Gmail服务器如果发现当前数据不比这个时标代表的数据新,它就会仅仅返回一个空的DataPack,以节省网络和系统资源。

2、Google Suggest

Google Suggest同样使用Javascript定时向服务器发送XmlHTTP请求,而服务器返回的是一个Javascript回调函数。回调函数的格式 如:sendRPCDone(frameElement, “fast bug”, new Array(”fast bug track”, “fast bugs”, “fast bug”, “fast bugtrack”), new Array(”793,000 results”, “2,040,000 results”, “6,000,000 results”, “7,910 results”), new Array(”")); 其中,sendRPCDone是一个本地定义的Javascript函数。

收到服务器返回的回调函数后,本地网页利用Javascript eval()函数直接执行返回的函数,将结果显示出来。简单、直接。

值得一提的是,研究Goolge Suggest的Chris将Google精简却难以理解的Javscript程序重写了,值得想要学习Javascript的同志们一看。Google将他的Javascript程序精简是可以理解的,因为可以压缩代码大小,从而提高网页下载速度。

3、Google Maps

和前面两者不同,Google Maps本地端不使用XmlHTTP,而是使用IFrame。而服务器端返回的是一个HTML文件。这个文件在本地网页中隐藏的一个IFrame里打开。 当它被打开时,它通过调用window.parent._load()函数,将自己包括的、由服务器返回的XML数据块传给本地网页,从而完成浏览器到服 务器的数据交互。

用IFrame的好处是,IFrame会将自己的状态记入浏览器的历史状态中,这样,用户可以通过按浏览器的”返回”按钮,回到以前的地图。而XmlHttp因为不计入浏览器的历史中,所以如果用XmlHttp的话,就只能回到进Google Map以前的那个网页了。

而Google Maps的另一个特点是,本地网页收到数据块后,依旧利用浏览器内置的XmlHttpRequest进行解析,然后利用XSL进行显示,非常的格式化。

看到以上三篇文章,已经是他们写出一年多以后了。在这一年里,又有什么激动人心的变化呢?请大家指正。

 
深入浅出ASAP2标准:手把手教你编写和解析A2L文件(含Python示例代码) 本文深入解析ASAP2标准下的A2L文件,涵盖基础概念、文件结构及Python实现代码,帮助开发者掌握汽车ECU标定和测量中的关键数据管理技术。通过详细示例,展示如何编写和解析A2L文件,提升电控数据管理效率。 阅读详情

相关推荐

别再死记硬背了!用Multisim仿真5分钟搞懂运放电压跟随器到底要不要加反馈电阻

本文通过Multisim仿真实验,深入解析运放电压跟随器中反馈电阻的必要性。实验对比不同阻值对电路性能的影响,揭示反馈电阻在提供偏置电流通路、提升高频稳定性和ESD保护中的关键作用,并给出工程实践中的优化建议,帮助工程师快速掌握运放电路设计要点。

weixin_42641998的博客 371

浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]

    为什么要取这样的一个题目呢?主要是因为今天去了一家公司和他们谈了谈,本来是指望做兼职的,谈到最后当然是不成了。去谈的是地图制作(可兼职)一职,要求是地图制图经验,最后加了个有WEBGIS开发经验。本来想自己毕业设计做的就是WEBGIS,而且对WEBGIS很感兴趣,最主要的是我从事的便是地图方面的工作,合情合理。最后谈下来是不需要我去制图而是需要我去搭建一个WEBGIS平台,跟他们谈了下Ma...

weixin_33755847的博客 242

医学图像处理(一)使用U-Net进行MRI的肝脏分割

医学图像处理(一)使用U-Net进行MRI的肝脏分割数据集搜集训练集和测试集划分问题一: 测试集不包括GroundTruth问题二:T1和T2的数据能一起训练吗?问题三: T1的图像在文件夹中分成了InPhase和OutPhase,这个有什么区别?分离出肝脏将dicom文件转换为png格式数据增强U-net网络搭建自定义DatasetMain.py实验结果总结 图像分割小白一枚,之前接到一个MRI图像肝脏分割的任务。对于医学图像分割,第一想到的就是Unet. Unet在2015的MICCAI上首次提出,在医

qq_34003876的博客 2万+

自己做网络地图:Google推出AJAX开发工具

Google在周四推出了一个开放版本的AJAX Framework,通过它用户可以构建像Google Maps和Calendar之类的Web应用程序。这个Google Web Toolkit beta是免费的,它是一个基于java的工具,并能够和任何java开发工具协同工作。  GWT已经加入到Google的代码库当 中,这个代码库包含了很多API和开发工具。Google产品经理Bret Tayl

北溟居 1758

推荐系统:NDCG评价指标及其Python实现方法

除了推荐任务,在二分类任务中,也可以计算该指标,代码如下: # ndcg def get_dcg(y_pred, y_true, k): #注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.DataFrame({"y_pred":y_pred, "y_true":y_true}) ...

lanyuelvyun的博客 8241

智能车竞赛飞檐走壁组赛道制作全攻略:从电磁线铺设到立体元素搭建

本文提供了智能车竞赛飞檐走壁组赛道制作的完整指南。从电磁线选材、电流控制与精准铺设等基础入手,详细解析了垂直墙面、圆筒、跷跷板等核心立体元素的构建技巧与过渡处理。重点分享了确保赛道稳定、符合规则且便于调试的实战经验,帮助参赛队伍搭建可靠的立体赛道,为车模算法调试奠定坚实基础。

weixin_29292535的博客 1273

AJAX In Google 初探(转)

最近在研究JavaScript和ajax,突然看到一篇文章,觉得很有启发,虽然是很久以前的文章,还是觉得值得一看。文章转载自Andrew wang,地址http://blog.youkuaiyun.com/andydevelope/archive/2006/07/18/934928.aspx  Google,囊括了美国顶尖的Web开发高手,开发的Gmail、Google Reader、Google Map...

weixin_34221775的博客 76

PCIe中ACS知识小记

虚拟机内部的访问数据显而易见是带的GPA地址。而目前几乎所有的PCIe 设备都带ACS control,所以它们可以单独assign给不同的VM,但是随之而来的就是即使两个GPU同时assign给同一个VM,由于ACS的存在,他们之间也不会有真正的物理层面的P2P访问。每一个TLP都自带一个address(寻址类TLP),同时每一个endpoint,PCIe switch都自带一段BIOS配置的地址空间范围,一旦这个TLP的address落入某个设备的地址范围,那么这个TLP就属于这个设备并消费。

Summer的博客 5077

AJAX In Google

Google,囊括了美国顶尖的Web开发高手,开发的Gmail、Google Reader、Google Maps也是Web2.0应用的经典。它们都是AJAX技术的杰出应用,然而有趣的是,他们使用的技术却各有不同。这也许是因为不同的开发小组的风格不同,但一些细节却透露出这也许是Google高手们针对不同应用的不同需求采用了不同的实现方法,以达到最完美的效果。真正的高手的高就在于此吧。下面来

764

智能电网中的智能调度与优化算法研究

本文研究智能电网中的智能调度与优化算法,旨在提高电网运行的效率与可靠性,减少能源浪费和设备故障的风险。在智能电网日益复杂化的背景下,传统的调度方法已难以满足高效、稳定的运行要求,因此亟需借助先进的优化算法对电网进行智能调度。本文第一深入分析智能电网调度中的关键问题与挑战,探讨优化算法在智能电网中的应用现状,并分析常见的优化算法,如遗传算法、粒子群算法和模拟退火算法。随后,本文构建智能电网的调度优化数学模型,并对电网负荷、发电模型及约束条件进行详细建模。在算法部分,本文提出改进的粒子群算法和遗传算法,并结合M

weixin_44553616的博客 1889

不止于连接:用VS Code Remote-SSH深度开发树莓派(Ubuntu 22.04环境实战)

本文详细介绍了如何在Ubuntu 22.04环境下使用VS Code的Remote-SSH功能进行树莓派深度开发。通过SSH配置、VS Code扩展安装和远程环境优化,开发者可以在本地高效编写代码,同时在树莓派上直接运行和测试,解决性能瓶颈问题。文章还提供了高级功能如端口转发、多项目管理和远程调试的实战技巧。

didui8202的博客 352

AJAX in ASP

概念:网站开发新理念 AJAX:http://edad.com.cn/datou/2005/02/ajax.htmAjax简介http://dev2dev.bea.com.cn/techdoc/2005110103.html架构:基于Ajax的应用程序架构汇总http://www.blueidea.com/tech/program/2005/2741.aspAjaxHelper Flat v0.7

taito的专栏 1561

virtuoso:layout如何做flat修drc

有些drc在virtuoso layout中修更节省时间,比如遇到一些via array需要做删改时,发现工具把via array做成了一个cell,如图。去改cell可能会影响很多via,所以最好的办法是做flat,去调整cut,比如删除。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 342

pyjamas build AJAX apps in Python (like Google did for Java)

pyjamas build AJAX apps in Python (like Google did for Java) pyjamaspyjamas build AJAX apps in Python (like Google did for Java)Get...

128

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

AJAX in Action

AJAX in Action转自:http://nicholasdsj.blogdriver.com/nicholasdsj/692452.html像其他人一样,当我看到一下RIA应用,例如Google Maps和Google Suggest的时候我都非常惊讶。我希望知道是如何实现的。现在,谜底揭开了,那就是AJAX。这是在我花了一段时间研究AJAX之后才知晓的。这里有一个很好的例子让我们知道AJ

zmxj的专栏 2375

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Build Google IG like Ajax Start Page in 7 days using ASP.NET Ajax and .NET 3.0

Introduction I will show you how I built a start page similar to Google IG in 7 nights using ASP.Net Ajax, .NET 3.0, Linq, DLinq and XLinq. I have logged my day to day development experience in this ...

weixin_30268921的博客 517

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Thinking in AJAX(一) —— AJAX - X

 众所周知,异步交互、JavaScript脚本和XML封装数据是AJAX的三大特征。其实,在实际应用中,不需要牢牢套死这三条大律,在我看来,AJAX - X,即去掉用XML封装数据,也不失为一种好的设计思路,如果应用恰当,更显轻盈步伐和巧妙思路。一般读取AJAX返回的XML结构的数据时使用XMLHttp的responseXML对象属性,同时,XMLHttp也提供了另外一个属性,即Respo

半天月·随笔 || 拾遗 3366

GWT in Action: Easy Ajax with the Google Web Toolkit

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/topmvp - topmvpThe Google Web Toolkit is a new technology that automatically translates Java into JavaScript, making Ajax ap

TopMVP 640

javafx 实现ajax,javascript - How to run a ajax function in Javafx? - Stack Overflow

i am really stuck with making google map with the "snap to road" function works in my javafx application so i used webview to implement a web page that containt the map.Everyting works fine but not th...

weixin_35682097的博客 384

Thinking in AJAX(一)——AJAX-X

众所周知,异步交互、JavaScript脚本和XML封装数据是AJAX的三大特征。其实,在实际应用中,不需要牢牢套死这三条大律,在我看来,AJAX - X,即去掉用XML封装数据,也不失为一种好的设计思路,如果应用恰当,更显轻盈步伐和巧妙思路。一般读取AJAX返回的XML结构的数据时使用XMLHttp的responseXML对象属性,同时,XMLHttp也提供了另外一个属性,即Respon

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1063

我的第一个Ajax Wicket控件:Google Ajax Image Search (1)

最近看到Google发布了新的基于Ajax的图片搜索功能,正好本人在研究Wicket,在网上Google了一下,看到WicketStuff中只有对GoogleMap的支持,因此想自己开发一个,顺便练练手。 创建工程和代码框架 首先创建一个Wicket工程,并创建一个页面。我本人用的是Wicket Bench,不过它是针对1.2设计的,而我的库用的是1.3,因此,自动生成的import有问题,需要...

tailorcai 190
上一篇: 利用google maps API开发应用精选
下一篇: 研究Google maps及51ditu的图片切割及存储方法
AndyDevelope
博客等级 码龄21年 16粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值