惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 随风

释放C盘空间的27招优化技巧 数据库索引应用(ms-sql) 使用命令行导入导出方案(oracle) 使用C#调用DTS包 网页效果集合(小技巧) - 随风 - 博客园 ORACLE常用傻瓜問題1000問 网络命令一览表 自定义应用程序配置文件(app.config) XmlHttp异步获取网站数据 - 随风 - 博客园 利用XMLHTTP无刷新添加数据 利用XMLHTTP无刷新自动实时更新数据 数据完整性管理 推模式中的水晶报表参数赋值 C#图像处理 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现) C#操作注册表 对虚拟目录的操作 SOS!! 求助 如何在asp.net中保存用户状态
页面无刷新获取数据的几种方式浅析
随风 · 2005-08-04 · via 博客园 - 随风

页面无刷新获取数据的几种方式浅析

Posted on 2005-08-04 14:30  随风  阅读(1733)  评论()    收藏  举报

  1. frame/iframe刷新:一般是用一个隐藏的iframe/frame页面,定时刷新,从服务器获取最新消息,并执行脚本,将消息反映到客户端。
    这种方法的好处是兼容性好,适用于所有支持frame和脚本的浏览器,缺点就是因为是网页直接刷新,有可能在某些机子上每次刷新都会有“吧嗒”的声音,如果浏览器状态栏可见,上面的进度条会一闪一闪的,比较烦人。例如微软最新推出的Msn Web Messenger即是基于此技术。
  2. XmlHttp/XmlDom无刷新:这种无刷新技术一度让Web开发者亢奋不已。在客户端,XmlDom可以根据URL获取服务器端的Xml文件并返回为一个XmlDocument,而XmlHttp不仅可以获取xml和html,还可以向服务器端发送一个XmlDocument,而且,结合客户端脚本的定时器:setTimeout("Function()", TimeoutInterval),定时从服务器获取数据。
    尤其要注意一点是不管是XmlDom还是XmlHttp,都有“同步”和“异步”之说,如果是“同步”,则浏览器会等到把所获取的Xml全部下载完才继续执行,如果是“异步”,则浏览器会不管它有没有下载完,直接继续下一步执行。对于Web即时寻呼,还是推荐使用“异步”方式,因为“同步”方式很可能会造成浏览器“假死”的情况,对客户来说很不友好。使用“异步”就可以避免这个问题,然后可以在onreadystatechange事件中判断是否已经加载完,然后解析消息。
    这种方式的好处是对于客户来说感觉不到浏览器在刷新,缺点是必须要客户端是IE,并且安装了msxml,所以兼容性不是很好。
    BTW: 听说Asp.Net 2.0对于这种无刷新进行了封装,可惜没试过,不知道兼容性如何:)
  3. 脚本调用WebService无刷新:WebService是个好东西,js也可以调用webserice,微软专门有一个WebService.htc,将对WebService的调用进行了封装,可以非常方便的调用,其实即使没有WebService.htc,我们也可以自己来解析,因为WebService实质也就是xml了,在客户端可以结合XmlDom来解析。然后借助定时器,也可以做到无刷新来获取服务器端消息。