ajax与iframe的比较

转自:http://blog.sina.com.cn/s/blog_782fa3f50100qh8p.html


序:用哪个不是重要,最重要的是用户的需求,以及优先满足用户的体验,具体区别如下,


一、网页的布局上
iframe包含了一个整个网页,通常,在布局网页的时候,我们经常要用到它。这样会使网页的制作显得很自然而且方便管理。
Ajax通常是在网页中某个小部分需要改变的时候用到的,它在改变网页内容的时候快速而精巧。在需要改变网页上几个字的时候,我们一般不用iframe。
二、客户端的速度体验上
用iframe请求服务器的数据时,通常浏览器下面的状态栏中的进度条会像打开某个新的网页时在前进。如果设置了刷新报警音,电脑会发出“咔咔”的响声,这对用户来说可能感觉会比较烦,如果请求频繁,会使用户觉得烦躁。
而用Ajax请求服务器的数据时不会出现上述情况。但实质上如果服务器的返回值大小是一样的,他们的速度上的差别是一样的。
三、灵活与复杂性上
如果你想用不刷新的技术上传一个数据,那么无疑你一定要选择iframe。这是很多人通常用到的方法,这一点iframe一定是灵活而简单的。
而用Ajax,通常你要写一堆声明的代码,总之会比较麻烦。但是,如果需要服务器进行复杂运算,而返回值是一个很简单结果,用Ajax一定是个不错的选择。



到现在ajax碰到的两个比较大的问题是
1)中文乱码,这个貌似是编码的问题,基本上能够解决,但是在某些比较低版本的浏览器中还是会出现一些问题
2)跨域post提交数据,这个貌似没有办法直接实现,只能通过代理或其他方式来实现

而这两个问题iframe基本都不会碰到,但是iframe的问题在于
1)你想同时进行多少个请求,就必须建立多少个iframe~否则无法同时进行
2)iframe的方式处理的是iframe页面的内容,交互成功的触发方式主要靠
a)页面定时读取页面加载状态;b)iframe触发父页面的事件。
a)方式必然导致对客户端资源的较多占用,b)方式导致返回数据的增加,而且必须保证父页和框架页的变量和方法的统一。而这点上面,ajax交互过程中仅仅返回所需要的数据(xml或者text),这个是ajax相比iframe的最大优势之一。

当然,有些简单的交互过程,或许用iframe解决会简单一些,例如我的站点有多个频道,采用二级域名布局,这时候如果在a域名下要将数据post到b域名下,如果用ajax处理起来可能会很麻烦,但是iframe很简单就能实现了
在有的地方比如点击出现一个浮动操作窗口,用iframe比用ajax方便的多。个人感觉用户体验比ajax还要好,ajax总有顿一下的感觉,iframe的方式响应非常快。但是一点击浏览器的后退按钮就露马脚了,用iframe会把每次操作当作一次点击链接记录到历史记录中。ajax还能做很多其它iframe做不了的事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值