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进行显示,非常的格式化。

 
win10删除vmware12后,重新安装失败(遗留注册表问题)解决总结 之前安装过一次VMware虚拟机,后来由于某些已遗忘原因把它卸载了,但是没有卸载完全,为以后安装留下了一些麻烦,现在根据我google很多内容总结后写下了自己的解决办法。 一些我搜的的可以用的VM12的注册码 5A02H-AU243-TZJ49-GTC7K-3C61N ZZ510-DYX47-48ERP-D6XZG-YCKU2 YV5MU-2FX5H-M841P-LZX5X-PYHX8 阅读详情

相关推荐

《算法第四版》学习心得一——怎么学算法

 一、算法的两个核心 算法的核心内容实际上有两个: 算法的概念和思路。 算法的编程实现。 两者相互关联影响,缺一不可。 不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。 二、学算法需要什么基础 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成...

illikang的博客 3909

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

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

weixin_33755847的博客 242

一周涨十万星,GitHub 爆火的 REA 逆向工程到底是什么?

REA 这波热度里,我一直没太想明白的是它为什么火在 AI 圈而不是安全圈。同类的 MCP 工具早就在了,技术上也谈不上新,真正变的只有一件事:门槛。门槛一降,参与的人就从"会逆向的工程师"变成了"会打字的任何人"。这大概也是争议的根源。护城河这件事,多数报道的共识是它从"你看不到我的代码"挪到了"你拿不走我的服务能力和业务理解"。这话对不对,现在没人拿得出证据,只能等下一批真实案例。哪天有人拿 REA 把某个还在卖钱的闭源软件啃出可维护的工程,那个答案才算落地。

优快云zhizunbao的博客 1184

AJAX支持的 GOOGLE 地图 MASHUP 教程

编辑注:本教程是 Dev2Dev TechDays 2007的附赠品,Dev2Dev TechDays 2007今年的主题是“构建企业Mashup”。这次研讨会的议题是如何在企业内部有效地使用mashup,会上详细讨论了本教程阐述的技术。在世界各地都举办了此次研讨会,查看 TechDays Web站点,了解在您附近的城市何时会举办此次研讨会。摘要  Web 开发的新纪元达到了顶峰,这一阶段

858

SUMO仿真教程(5) —— 使用“XML“语言自定义构建路网

文章目录一.简要介绍1.node file2.edge file3.lane definitions(1)路段细分(2)邻近的对向车道(3)删除边或车道4.type file(1)简要概述(2)edge定义中引用type文件的示例(3)指定车辆种类的速度限制5.connections file(1)简要概述:(2)connection的属性参数(3)删除连接(4)设置连接的优先级(5)同一边的多个连接二.演示示例:1.自定义编写node file2.自定义编写edge file3.自定义编写type fil

weixin_50632459的博客 5015

什么是深度展开网络?如何将迭代算法的每一次迭代展开成深度网络对应的一层?深度展开网络进行端对端训练,其中端对端是什么意思?

在深度学习和机器学习的背景下,“端到端”(End-to-end)训练指的是将输入数据直接映射到最终输出的过程,而不需要任何中间的手动数据预处理或特征工程。- **自然语言处理**:端到端自然语言处理系统可以将自然语言输入直接转化为计算机可理解的语言输出,而不需要对语言进行分解和转化。- **推荐系统**:通过使用深度神经网络,端到端推荐系统可以直接根据用户历史行为预测其未来的兴趣爱好,并推荐相应的产品或服务。4. **直接映射**:从输入到输出的直接映射,中间没有任何拆分或分解的过程。

m0_67897882的博客 5432

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

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

北溟居 1758

【时空数据分析#06】实战:基于Python与ArcGIS的NDVI长期趋势制图与分级

本文详细介绍了基于Python与ArcGIS进行NDVI长期趋势制图与分级分析的完整工作流。通过整合MODIS卫星数据,利用ArcGIS进行空间处理与栅格转换,结合Python进行时序统计与趋势计算,最终生成直观的植被变化趋势分级图,为生态评估与环境监测提供可靠的空间分析工具。

lilh34434的博客 474

AJAX In Google 初探

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

Andrew Wang的专栏 1827

腾讯云DBA面试(一面)

在第二阶段,根据RM返回的结果,如果涉及分布式事务的所有RM都返回可以提交, 则TM给RM发送commit的命令,每个RM实现自己的提交,同时释放锁和资源,然后RM反馈提交成功, TM完成整个分布式事务;根据事务所处的阶段,可以回滚到具体的版本,实现一致性。1.并发执行的事务,在prepare阶段,redo log先写文件缓存,第一个领头的事务,在等待n个事务后, 在第一个事务去刷写磁盘时,会把同组的其他的事务,也一起刷写到磁盘上,这样就减少了刷盘的次数,降低了磁盘的IOPS。分布式锁是怎么实现的?

u012565458的博客 1977

蓄热式加热炉燃烧技术

蓄热式加热炉燃烧技术

weixin_37928884的博客 2733

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

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4376

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

导读:  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 arti

525

自定义ajax脚本出粗哦,Wordpress自定义Ajax登录页面 – 十分钟课堂

演示视频:主要步骤:创建模板页:在主题目录下创建模板页面page-sing-in.php,页面里的代码:global $user_ID;if (!$user_ID) {get_header();?>src="/etc/img/sign-in-loading.gif" alt="loading">Hi, there.get_footer();} else {echo 'window.lo...

weixin_42117622的博客 412
上一篇: 编程对付卡巴的自启动监控
下一篇: 获得指定 PID 的进程可执行文件全路径
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值