1、Ajax的适用场景
1) 用Ajax进行数据验证
在填写表单内容时,有时需要保证数据的唯一性,如新用户注册填写的用户名,因此必须对用户输入的内容进行数据验证。
使用Ajax技术,可以由XMLHttpRequest对象发出验证请求,根据返回的HTTP响应判断验证是否成功,整个过程不需要弹出新窗口,也不需要将整个页面提交到服务器,快速而又不加重服务器负担。
2) 用Ajax自动更新页面
对于数据实时变化的web应用中,如热点新闻,天气预报等,在Ajax出现之前,用户为了及时了解最新内容,必须不断刷新页面,或页面本身实现定时刷新的功能。这可能会发生两种情况:
① 某段时间网页的内容没有发生任何变化,但用户并不知道,仍然不断刷新页面;
② 某段时间网页的内容已经发生任何变化,但用户失去了耐心,放弃了刷新页面,得不到最新的数据。
使用Ajax技术,可以通过Ajax引擎在后台进行定时轮询,向服务器发送请求,查看是否有最新数据,若有则将最新数据(不是所有数据)下载并在页面上进行动态更新,通过JavaScript等方式通知用户。这样既避免了用户不断手工刷新页面,也不会因为重复刷新页面造成资源浪费。
2、Ajax的不适用场景
1) 需要使用后退按钮来查看历史搜索
Ajax会破坏浏览器后退按钮的正常行为,在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记下历史记录中的静态页面,因此用户无法通过后退按钮获得前一次或前几次的搜索结果。
2) 部分简单的表单
一个内容简单的表单(如评论表单),或提交订单,或一次性的很少用到的表单都不应该使用以Ajax驱动的表单提交机制,极少能从Ajax得到明显的改善。
3) 需要更新大量信息
Ajax可以不用整页刷新来动态更新页面中改变的一小部分,但如果页面上的大部分内容都需要更新,完全可以从服务器那里获得一个新页面。