【会议笔记】20100410_百度技术沙龙_WEB数据交互的艺术(黄方荣)
2010-04-20 15:15
309 查看
1. Server 的数据推送
01. 轮循
比如第一代文字版聊天室,定时从客户端请求服务器端。
Ajax 和 XSS 等技术实现。
02. 长连接
WEB 版在线会议
IE 的 new Active Object('htmlfile'); //从 gtalk 开始
Mozilla 的 XmlHttpRequest 的 readyState == 3 时。
Flash 双向 Socket。
03. 伪长连接
Server 端数据推送“comet”。
Ajax 和 XSS。
Server 端等待请求,然后将 http 请求 hold 住。
04. 应用
轮循:文字聊天室、Session 延时。
长连接:WebIM、文件上传、语音视频传输、网页游戏。
伪长连接:WebIM、WebQQ。
之所以使用伪长连接是因为长连接超过 90 秒时在某些环境会被代理服务器掐断,而伪长连接 comet 控制在 30 - 60 秒内,更为合理。
2. 异域服务器数据交互
01. Html 嵌 JavaScript 文件
<script language="javascript" src="xxx.js"></script>
02. JavaScript 动态创建
<script language="javascript">
xxxxxxxx
</script>
实例:百度 cpro 广告脚本、网页数据采集、数据服务。
03. 网页直接通讯
iframe 嵌 iframe:
www.aaa.com/index.htm 嵌 www.bbb.com/index.htm,若想从 bbb.com 访问 aaa.com 的数据。
直接在 bbb.com 动态创建 aaa.com 域名下的 iframe,通过 url 带信息从而通过 parent.parent 传递到顶层页面。
3. 客户端网页跨浏览器的数据交互
flash 本地同步信息(flash 97% 的覆盖支持率)
比如用来存储网页即时通讯的聊天记录,多浏览器要保持数据一致性。
4. 数据的压缩处理
01. YUI Compressor
02. gzip //很成熟的技术,占不了多少服务器资源。
例:百度地图 YUI 压到 300k 左右,使用 gzip 到 100k。
5. Web 前后端交互的数据格式
01. 早期纯文本
使用特殊字符比如“|”分隔的固定格式文本,现在在证券软件还在使用类似存储和传输方式。
02. XML
不同浏览器解析差异很大
opera 8.5 之前不支持,IE 是使用 Active Object 实现,FireFox 直接由核心支持。
03. Json
05 年左右开始,js 中可直接使用的数据格式,与 XML 映射也比较方便。
6. 数据的客户的存储
01. UserData(IE)
IE5.0 起支持,只有 IE 支持,每域名本地有 640K 存储空间,单个文件支持 64K,不过可以设置,比如局域网可以设为 10M。
02. LocalStorage
2006 或 2007 开始出现,FF、Sofari、Opera 支持,IE 直到 IE8 尚未支持。
可能发展成类似 SQL 查询的性质。
03. Flash
每域名默认 128K,大小用户可设置。
用途:
本地存储、离线存储、离线功能开发。
7. 数据交互推动着 WEB 的发展
01. 聊天室和 WebIM 的需要:Server 数据推送
02. 脚本投放和开放 API 需要:跨域脚本
例如:网络在线输入法、百度搜索下拉提示
03. 跨域数据服务需要:Callback
04. 网页多媒体通讯需要:长连接
05. Web2.0 需要:Ajax
06. Web3.0 需要:????
推测:html5、flash + serverlet,更多在使用长连接、数据主动推送、数据双向推送等技术方面发展。
不局限于某一种技术,根据产品线应用。
会后问答总结:
百度使用优化过的 Linux、Apache,自己用 C 语言写的一些东西。1 台优化过的服务器一般负责承受 1 万左右并发,其实 2 - 3 万并发也可以承受。
Server 将 http 请求 hold 住,比如暂停或放于堆栈,不同语言处理不同。
数据交互通过 json 来做。
IE6 一个浏览器只支持两个长连接,再多就不行了,这是在使用一个域名的情况下,解决的办法是用多个域名来突破限制。
百度:黄方荣联系方式:huangfangrong@baidu.com
01. 轮循
比如第一代文字版聊天室,定时从客户端请求服务器端。
Ajax 和 XSS 等技术实现。
02. 长连接
WEB 版在线会议
IE 的 new Active Object('htmlfile'); //从 gtalk 开始
Mozilla 的 XmlHttpRequest 的 readyState == 3 时。
Flash 双向 Socket。
03. 伪长连接
Server 端数据推送“comet”。
Ajax 和 XSS。
Server 端等待请求,然后将 http 请求 hold 住。
04. 应用
轮循:文字聊天室、Session 延时。
长连接:WebIM、文件上传、语音视频传输、网页游戏。
伪长连接:WebIM、WebQQ。
之所以使用伪长连接是因为长连接超过 90 秒时在某些环境会被代理服务器掐断,而伪长连接 comet 控制在 30 - 60 秒内,更为合理。
2. 异域服务器数据交互
01. Html 嵌 JavaScript 文件
<script language="javascript" src="xxx.js"></script>
02. JavaScript 动态创建
<script language="javascript">
xxxxxxxx
</script>
实例:百度 cpro 广告脚本、网页数据采集、数据服务。
03. 网页直接通讯
iframe 嵌 iframe:
www.aaa.com/index.htm 嵌 www.bbb.com/index.htm,若想从 bbb.com 访问 aaa.com 的数据。
直接在 bbb.com 动态创建 aaa.com 域名下的 iframe,通过 url 带信息从而通过 parent.parent 传递到顶层页面。
3. 客户端网页跨浏览器的数据交互
flash 本地同步信息(flash 97% 的覆盖支持率)
比如用来存储网页即时通讯的聊天记录,多浏览器要保持数据一致性。
4. 数据的压缩处理
01. YUI Compressor
02. gzip //很成熟的技术,占不了多少服务器资源。
例:百度地图 YUI 压到 300k 左右,使用 gzip 到 100k。
5. Web 前后端交互的数据格式
01. 早期纯文本
使用特殊字符比如“|”分隔的固定格式文本,现在在证券软件还在使用类似存储和传输方式。
02. XML
不同浏览器解析差异很大
opera 8.5 之前不支持,IE 是使用 Active Object 实现,FireFox 直接由核心支持。
03. Json
05 年左右开始,js 中可直接使用的数据格式,与 XML 映射也比较方便。
6. 数据的客户的存储
01. UserData(IE)
IE5.0 起支持,只有 IE 支持,每域名本地有 640K 存储空间,单个文件支持 64K,不过可以设置,比如局域网可以设为 10M。
02. LocalStorage
2006 或 2007 开始出现,FF、Sofari、Opera 支持,IE 直到 IE8 尚未支持。
可能发展成类似 SQL 查询的性质。
03. Flash
每域名默认 128K,大小用户可设置。
用途:
本地存储、离线存储、离线功能开发。
7. 数据交互推动着 WEB 的发展
01. 聊天室和 WebIM 的需要:Server 数据推送
02. 脚本投放和开放 API 需要:跨域脚本
例如:网络在线输入法、百度搜索下拉提示
03. 跨域数据服务需要:Callback
04. 网页多媒体通讯需要:长连接
05. Web2.0 需要:Ajax
06. Web3.0 需要:????
推测:html5、flash + serverlet,更多在使用长连接、数据主动推送、数据双向推送等技术方面发展。
不局限于某一种技术,根据产品线应用。
会后问答总结:
百度使用优化过的 Linux、Apache,自己用 C 语言写的一些东西。1 台优化过的服务器一般负责承受 1 万左右并发,其实 2 - 3 万并发也可以承受。
Server 将 http 请求 hold 住,比如暂停或放于堆栈,不同语言处理不同。
数据交互通过 json 来做。
IE6 一个浏览器只支持两个长连接,再多就不行了,这是在使用一个域名的情况下,解决的办法是用多个域名来突破限制。
百度:黄方荣联系方式:huangfangrong@baidu.com
相关文章推荐
- 百度技术沙龙(第1期)- 1. WEB数据交互的艺术(转载)
- Web数据交互-XML/JAVASCRIPT
- Android笔记:webView与HTML5交互方法总结
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- WebView与js数据的交互
- EXTJS4.0 用法笔记~~ 3种和后台交互数据的方法(小弟只会这三种。。。)
- Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互
- CMS内容管理系统开发- Java Web开发及发布实例(2)—使用JSP实现动态数据交互
- .net WebService(二) 客户端向服务端传入参数的数据交互方式
- web前端后端数据的交互方式总结
- 重新想象 Windows 8.1 Store Apps (80) - 控件增强: WebView 之基本应用, POST 数据, 与 JavaScript 交互
- JSP实现数据传递(web基础学习笔记三)
- 玩转Web之Json(二)----jquery easy ui + Ajax +Json+SQL实现前后台数据交互
- Android WebView 与JS的数据交互
- Android WebView 与JS的数据交互
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- TCP/IP详解--学习笔记(11)-TCP交互数据流,成块数据流
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)
- Android笔记--简单的Fragment和Activity的之间的数据交互(传值)
- tcpip详解笔记(16) TCP的交互数据流