`
阅读更多

  Ajax适用场景

  1.表单驱动的交互

  传统的表单提交,在文本框输入内容后,点击按钮,后台处理完毕后,页面刷新,再回头检查是否刷新结果正确。使用Ajax,在点击sunmit按钮后,立刻进行异步处理,并在页面上快速显示了更新后的结果,这里没有整个页面刷新的问题。

  2.深层次的树的导航

  深层次的级联菜单(树)的遍历是一项非常复杂的任务,使用JavaScript来控制显示逻辑,使用Ajax延迟加载更深层次的数据可以有效的减轻服务器的负担。

  我们以前的对级联菜单的处理多数是这样的:

  为了避免每次对菜单的操作引起的重载页面,不采用每次调用后台的方式,而是一次性将级联菜单的所有数据全部读取出来并写入数组,然后根据用户的操作用 JavaScript来控制它的子集项目的呈现,这样虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题,但是如果用户不对菜单进行 操作或只对菜单中的一部分进行操作的话,那读取的数据中的一部分就会成为冗余数据而浪费用户的资源,特别是在菜单结构复杂、数据量大的情况下(比如菜单有 很多级、每一级菜又有上百个项目),这种弊端就更为突出。

  如果在此案中应用Ajax后,结果就会有所改观:

  在初始化页面时我们只读出它的第一级的所有数据并显示,在用户操作一级菜单其中一项时,会通过Ajax向后台请求当前一级项目所属的二级子菜单的所有数据,如 果再继续请求已经呈现的二级菜单中的一项时,再向后面请求所操作二级菜单项对应的所有三级菜单的所有数据,以此类推……这样,用什么就取什么、用多少就取 多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于后台处理并重载的方式缩短了 用户等待时间,也把对资源的浪费降到最低。

  3.快速的用户与用户间的交流响应

  在众多人参与的交流讨论的场景下,最不爽的事情就是让用户一遍又一遍刷新页面以便知道是否有新的讨论出现。新的回复应该以最快的速度显示出来,而把用户从分神的刷新中解脱出来,Ajax是最好的选择。

  4.类似投票、yes/no等无关痛痒的场景

  对于类似这样的场景中,如果提交过程需要达到40秒,很多的用户就会直接忽略过去而不会参与,但是Ajax可以把时间控制在1秒之内,从而更多的用户会加入进来。

  5.对数据进行过滤和操纵相关数据的场景

  对数据使用过滤器,按照时间排序,或者按照时间和名称排序,开关过滤器等等。任何要求具备很高交互性数据操纵的场合都应该用JavaScript,而不是用一系列的服务器请求来完成。在每次数据更新后,再对其进行查找和处理需要耗费较多的时间,而Ajax可以加速这个过程。

  6.普通的文本输入提示和自动完成的场景

  在文本框等输入表单中给予输入提示,或者自动完成,可以有效的改善用户体验,尤其是那些自动完成的数据可能来自于服务器端的场合,Ajax是很好的选择。

  Ajax不适用场景

  1.部分简单的表单

  虽然表单提交可以从Ajax获取最大的益处,但一个简单的评论表单极少能从Ajax得到什么明显的改善。而一些较少用到的表单提交,Ajax则帮不上什么忙。

  2.搜索

  有些使用了Ajax的搜索引擎如Start.com和Live.com不允许使用浏览器的后退按钮来查看前一次搜索的结果,这对已经养成搜索习惯的用户来说是不可原谅的。

  现在Dojo通过iframe来解决这个问题。

  3.基本的导航

  使用Ajax来做站点内的导航是一个坏主意,为什么不把时间放在让系统程序作的更好上呢?

  4.替换大量的文本

  使用Ajax可以实现页面的局部刷新,但是如果页面的每个部分都改变了,为什么不重新做一次服务器请求呢?

  5.对呈现的操纵

  Ajax看起来像是一个纯粹的UI技术,但事实上它不是。它实际上是一个数据同步、操纵和传输的技术。对于可维护的干净的web应用,不使用Ajax来控制页面呈现是一个不错的主意。JavaScript可以很简单的处理XHMTL/HTML/DOM,使用CSS规则就可以很好的表达数据显示。

  存在的问题

  1.用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事;

  2.Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰?D?D用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等;

  3.中间过程不能被bookmark。解决方法:GoogleMaps通过在页面上提供一个”link to this page”的办法来解决。另外,还可以通过url链接中加无效的?^标记来解决,但还未验证。 我觉得ibm开发者论坛中有个老大不记得什么名字了说的不错 跟j2ee的现有成熟表现层框架结合使用是比较好的一个选择。因需而用不会给自己断掉很多后路。一味的尝试或许就有苦果等待、诱惑、刺激、引导你失去理智。  

本文转自: http://dev.yesky.com/256/3007256.shtml

分享到:
评论

相关推荐

    AJAX使用场景分析

    1.表单驱动的交互  传统的表单提交,在文本框输入内容后,点击按钮,后台处理完毕后,页面刷新...使用Ajax,在点击submit按钮后,立刻进行异步处理,并在页面上快速显示了更新后的结果,这里没有整个页面刷新的问题。

    亮剑.NET深入体验与实战精要2

    8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 Ajax Extensions 333 8.2.2 创建ASP.NET Ajax应用程序 333 8.2.3 ...

    亮剑.NET深入体验与实战精要3

    8.1.6 Ajax适用场景 327 8.1.7 Ajax不适用场景 329 8.1.8 XMLHttpRequest开发实例 329 8.2 微软VS.NET的Ajax开发 333 8.2.1 安装ASP.NET 2.0 Ajax Extensions 333 8.2.2 创建ASP.NET Ajax应用程序 333 8.2.3 ...

    适用于服务端有数据变动想主动通知客户端场景,解决服务端和客户端的双向通信,可以代替ajax轮询技术

    项目主要适用于服务端有数据变动想主动通知客户端场景,例如web网络聊天室,服务端数据变动通知web页面等。解决服务端和客户端的双向通信,可以代替ajax轮询技术。在服务端主动通知的场景下可以大幅度降低架构复杂度...

    Ajax高级程序设计

    exe文件 <br>内容介绍: 本书是一本关于Ajax技术、模式和使用场景的开发人员级教程,不仅介绍了Ajax的基本知识,还讨论了Ajax模式和框架,同时针对XML(包括XPath和XSLT)、RSS/Atom、Web服务、JSON和Web用户...

    AJAX高级程序设计.rar

    本书是一本关于Ajax技术、模式和使用场景的开发人员级教程,不仅介绍了Ajax的基本知识,还讨论了Ajax模式和框架,同时针对XML(包括XPath和XSLT)、RSS/Atom、Web服务、JSON和Web用户界面组件等主题,阐述了如何将...

    gazira-ajax-single:ajax请求控制工具(非常适用按钮点击)

    适用场景: 按钮被多次点击,发出多个请求。此时使用 old 模式保证使用第一次点击请求 tab切换,发出多个请求。此时使用 new 模式保证使用最后一次请求 auto模式,根据url和请求参数判断使用 old 还是 new模式 使用...

    php项目源码_[主机域名]PHP+AJAX的whois查询程序_whois.rar

    【主机域名】PHP+AJAX的WHOIS查询程序 ...适用场景: 适用于需要集成WHOIS查询功能的网站、应用或工具,如域名交易平台、网络安全检测等。 注意: 使用前请确保遵守当地法律法规及WHOIS协议规定,不得用于非法用途。

    Ajax框架集

    介绍了web世界现在流行的Ajax的框架,做了简单的比较及适用场景介绍。收集了很多Ajax的资源。是你入门和开发之前选择Ajax框架的一个参考

    php项目源码_[主机域名]php ajax 域名查询_domainsearch.rar

    适用场景: * 个人域名投资者:用于寻找具有投资价值的域名。 * 企业:用于企业品牌域名的选择和管理。 * 网站开发者:用于为客户查找合适的域名。 总之,DomainSearch是一个功能全面、操作简便的域名查询系统,...

    基于springboot+ajax创建小区物业管理系统.zip

    这就意味着 Spring Boot 的应用场景非常广泛,包括常见的 Web、SOA 和微服务等应用。 在 Web 应用中,Spring Boot 提供了 spring-boot-starter-web 来为 Web 开发予以支持。spring-boot-starter-web 为开发人员提供...

    Dojo与ExtJs的比较

    适用场景:企业应用和产品开发。 Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX。Core提供 Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是...

    (开源)Flask+Vue+Bootstrap3 Web数据库(人力资源用)

    自用数据库,在web前端实现修改服务器储存数据 使用\学习目标:学习Vue\AJAX\Flask\数据库等操作 适用场景:人力资源\小型办公场景(SOHO) 特点:轻量化,易部署\修改

    JS操作Excel:使用js-xlsx实现前端导出Excel文件

    使用js-xlsx实现前端导出Excel文件的场景非常广泛,例如:对于网站上收集的数据进行导出、对于网页表格数据进行导出等。使用js-xlsx可以使前端代码简单易懂,同时可以极大地减少后端的工作量。 使用js-xlsx可以很...

    基于Jsp+Servlet+Mysql学生信息管理系统(高分课程设计)

    适用场景:适合Java毕业设计实训项目,对学Java的同学来说非常适合学习。 项目简介:本系统主要是管理员登录以后可以系统信息管理,教师信息管理,学生信息管理、课程信息管理、公告信息管理,以及学生个人信息资料...

    基于Jsp+Servlet+Mysql学生信息管理系统

    适用场景:适合Java毕业设计实训项目,对学Java的同学来说非常适合学习。 项目简介:本系统主要是管理员登录以后可以系统信息管理,教师信息管理,学生信息管理、课程信息管理、公告信息管理,以及学生个人信息资料...

    轻量级 PHP 接口开发框架 LyAPI

    功能完备:LyAPI内置了一些常用的功能,同时还在不断的开发拓展库。 开发简单:一个API就是一个函数,你只需要将数据...适用的场景 移动APP接口服务 平台接口的搭建(供其他系统接入使用) 前后端分离项目(使用AJAX请求)

    基于jsp+Servlet+mysql学生信息管理系统(高分期末大作业)

    适用场景:课程设计学习参考,对学计算机的大学生来说非常适合学习。 项目描述:本系统分为三个角色,有学生、老师、管理员、学生可以查看自己的信息和修改密码,老师有学生信息管理、班级管理;管理员有学生信息...

    基于jsp+Servlet+mysql学生信息管理系统V2.0

    适用场景:课程设计学习参考,对学计算机的大学生来说非常适合学习。 项目描述:本系统分为三个角色,有学生、老师、管理员、学生可以查看自己的信息和修改密码,老师有学生信息管理、班级管理;管理员有学生信息...

    整理后java开发全套达内学习笔记(含练习)

    应用,适用 [ә'plai] application n.应用,应用程序 [,æpli'keiʃәn]' (application crash 程序崩溃) arbitrary a.任意的 ['ɑ:bitrәri] argument n.参数;争论,论据 ['ɑ:gjumәnt]'(缩写 args) assert ...

Global site tag (gtag.js) - Google Analytics