Ajax杂谈

来源:互联网 发布:软件二次开发是什么 编辑:程序博客网 时间:2024/04/27 21:45

======================================================
注:本文源代码点此下载
======================================================

google suggest 和google map的出现,引起了我们web开发者的一次震动。随着ajax技术的出现、盛行,本被忽视认为是二流编程语言的javascript脚本也开始了新的盛行,大量的javascript框架的出现如microsoft asp.net ajax、jquery等。ajax已经成为这些脚本框架必不可少的组成部分了,而且ajax的开发也越来越简单化。

ajax是一种已不是加载脚本,其最古老的实现方式是利用iframe来加载远程的脚本利用top.function来调用父窗体的方法。利用a等html的target属性来指定。简单但是后期维护复杂化了并且在跨越方面很麻烦。接着就xmlhttprequest对象的出现,一定程度的简化了ajax的开发,但是在不同的浏览器中实现有很多大不同,firefox中xmlhttprequest和ie中的activeobject等方式,以及它仅提供了很少和简单的ajax请求和处理。在现在出现了很多的javascript框架,在基于xmlhttprequest的封装和类库的提供,极大的简化了我们的ajax编程。其中最为出名和盛行的jquery框架。这里需说出的是jquery一定程度的实现了部分跨域问题。

下面我就说几点自己目前想到的ajax注意或者技巧,思维也许有点乱,请谅解,将的不好,也请原谅。

1:ajax中的x是xml,它也可以很方便的加载xml,但是并不是说xml就是说xml就是ajax的首选。首先大家都知道xml是一种严格的数据存储方式,有很多冗余信息。再则xml的处理也有一定的复杂性。xml能实现跨平台性,如webservice,这是webservice的优点,但是也是一个致命的缺点,它基于的xml冗余信息,所以在分布式中速度也是很慢的。

相比而言json对象是一个轻量级的存储方式,它是以名值对的形式存储。而且javascript脚本本身就是一个天然的json对象,无需转化,可以直接使用,并且现在.net框架中提供了对json序列化的支持.我个人观点是首选json。

2:在服务器端为了性能等的考虑经常会有缓存,以及浏览器的缓存。有时我们需要避免,最简单的方式是加上一个时间戳,"default.aspx?time=” + datetime.now。就可以避免缓存。如果你用的是jquery的ajax那可以直接设置cache:false禁用缓存。

3:在ajax编程需要注意的是content-type,有html、text、json、xml、script等方式。我们很多的无故的错误经常就在这里的设置。需要注意ajax的content-type,以及服务端输出的content-type。还有就是服务器端,我们要输出前的response.clear(),response.contenttype=type,以及完成时的response.flush()和response.clos()。

4:ajax并不是高交互、高用户体验的代表,这需要说明。我们的应用不应该什么地方都用ajax技术,使得ajax技术在项目里泛滥,如果我们要用ajax,那我们就必须为客户准备退路,因为ajax请求很可以由于各种原因而请求失败。

5:ajax必究是基于客户端脚本,这就意味在存在一定的安全隐患,很容易暴露我们的某些敏感信息。特别是网上的脚本代码糜烂,我们有些人经常会在网上copy下来仅小小仅测试下就加入了我们的项目,这是一个很不好的习惯。很容易得不偿失。

时间已晚,就说这么多吧,如果你还有什么心得或建议请留言。。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击