`

AJAX必须用到和不必使用的地方

阅读更多

 

在学习多了Ajax以后,免不了在很多网页的操作都想使用Ajax。在这种情况下就很容易造成Ajax的过度使用。下面转贴一篇看到的文章来告诫自己什么时候应当使用,而在什么情况下不需要使用Ajax

转载自:http://68design.net/Development/JSP/21823-1.html

 

现在距离gmail改变了大家对使用网页应用程序的方式已经有一年多了。但是目前很多网页应用程序并没有使用充满活力的Ajax的优势来代替以前沉闷的html功能。

下面是当前网页应用程序应该出现的地方:

基于表单的交互

表单是很慢的,非常慢。尝试编辑位于del.icio.us上面的一个书签?点击编辑 链接打开一个编辑书签的表单页面,然后编辑你的内容并点击提交按钮等待整个提交过程结束,最后返回上一页并向下滚动到你刚才编辑的书签那里查看内容是否已 经正确更改。那AJAX呢?点击编辑链接马上开始更改标签内容,点击提交按钮开始异步传输标签编辑的内容并立即看到更改后的内容而无需重载整个页面。

深层树状导航

总而言之,带有深层树状导航的应用程序通常是一个噩梦。在大多数情况中简单平直的拓扑 结构以及搜索/标记可以很好的工作。但是如果一个应用程序真正使用深层树状导航,使用JavaScript来管理拓扑ui(user interface用户接口),则使用Ajax懒加载深层数据可以降低服务器的负载。举例来说,为了阅读一个只有一行的结果来加载整个一个新页面是非常耗 时的。

实时用户对用户通讯

在一个允许用户创建实时讨论的信息公告系统中,迫使用户一次又一次的更新完页面看到答 复是非常愚蠢的。回复应该是实时的,用户不应被迫总是去痴迷于刷新操作。即使是gmail这个已经对以前像hotmail/yahoo mail的收件箱刷新,刷新收件箱标记的操作有所改进,也并没有充分的使用Ajax的功能来提示有新邮件到达。

投票、是否选择、等级评价

如果Ajax提交过程没有一个协调的UI提示是非常糟糕的,通过使用Ajax来提交一 个调查或是否选择可以减少提交过程等待的痛苦。通过减少点击的等待时间,Ajax应用程序变得越来越有交互性-如果要用40秒来提交一个投票,除非非常在 意的话大多数人会选择放弃。如果只花1秒呢,非常大比例的人会乐于参加投票的。(我在Netflix versus有2008张电影投票在IMDb.com有210张电影投票)

过滤和复杂数据操作

应用一个过滤、按日期排序、按日期和姓名排序、打开或关闭过滤器等等。任何一种高交换型操作应该交给JavaScript来处理而不是通过向服务器来提交一系列的请求。在查找或者操作大量数据的时候带来的视图上的改变最多不会超过30秒,Ajax真的使这些操作加速了。

普通录入时的提示/自动补齐

一些软件/JavaScript是擅长于帮助用户完成键入相同的文字或可以预测的文字的工作的。在del.icio.us 和 Gmail 中该功能是非常有益的,可以用来快速增加标记/email等。

对于一个频繁使用的应用程序诸如网页邮件客户端或博客阅读器来说,用户有充足的时间来 学习如何使用新的UI概念但是他们却无法接受一个非常缓慢 的反应速度。这种应用为Ajax变的更加普及起到了一个完美的杠杆作用。随着用户使用频率的增加,更多的Ajax部件应该加强用户的使用体验。

但是对于网页应用程序来说,把每件事甚至任何事都用JavaScript来实现也是没 有意义的。Ajax只是针对一些特定的环境才能带来显著的 帮助。在Ajax出现之前网页应用程序已经可以工作的很好了并且目前在网页开发中Ajax还存在着许多的缺陷和缺点。就算不从服务器端取得一个异步的信息 数据流一个平直的html网页日志也可以工作的很好。对于文档或文档之间的跳转来说,老旧的纯HTML仍然是最好的选择。简单或很少使用的应用程序就算不 用JavaScript同样可以很好的工作。

下面是一些不应该用到Ajax的地方:

简单的表单

就算表单是Ajax技术的最大受益人,一个简单内容的表单,或提交订货单,或一次性的很少用到的表单都不应该使用以Ajax驱动的表单提交机制。总的来说,如果一个表单不是很长用,或已经工作的很好,那么就算使用Ajax也没有什么帮助。

搜索

实时搜索带来的痛苦要远大于他带来的帮助。这就是为什么Google Suggest还处于beta测试而并没有放在主页上的原因。在Start.com Live.com上搜索的时候你是不能使用返回按钮来查看上一次搜索或返回上一页的。或许还没有人来完成这项工作,但是完成这个工作应该是很困难的至少是 不太明知的或者会因此带来更多的麻烦。(译注:现在已经有很多开源的框架可以实现历史记录功能)

基本导航

总的来说,使用Ajax为一个基础的网站/程序做导航是一个可怕的念头。谁会把用来使自己的程序变的更好的时间花在编写代码模仿浏览器的行为上面?在基础页面中导航的操作中JavaScript是没有用的。

替换大量的信息

Ajax可以不用整页刷新来动态更新页面中改变的一小部分。但是如果一页上的大部分内容都需要更新,那为什么不从服务器那里获得一个新页面呢?

显示操作

虽然看上去Ajax是一个纯UI技术,其实不是这样的。他实际上是一个数据同步、操 作、传输的技术。要想得到一个稳定的干净的网页程序,不使用Ajax/JavaScript来直接完成用户接口是明智的。JavaScript可以分散分 布并简单的操作XHTML/HTML DOM,根据CSS规则来决定如何让UI显示数据。

无用的网页小部件

滑块选择控件、拖拽控件、弹性控件(此处原文为bouncies,不知指为何物?)、 鼠标样式、天气预报控件,这些小部件应该可以被更直接的控件代替或者为了整洁干脆整个去掉。为了选择一种颜色,也许滑块选择控件可以选择一个正确的阴影颜 色,但是在一个商店中选择一个价格,使用滑块选择控件选到分这个单位对于用户来说有点过分。

分享到:
评论

相关推荐

    asp.net ajax简单应用实例

    总结一下,这个"asp.net ajax简单应用实例"展示了如何使用ASP.NET AJAX技术来提升用户体验,通过异步更新页面的部分内容,减少了不必要的页面刷新。用户在下拉框选择时,服务器端代码运行并返回新的Label值,这一切...

    学生信息管理系统 Element-ui+Servlet+Mybatis

    前端用到了vue框架,Element-ui设计样式 ,用Ajax发送请求和接收相应。 服务器使用的是Tomcat。 后端用到了Servlet接收请求和发送相应,用Mybatis连接数据库。 数据库使用的是MySQL 8.0.28。 这是我做的第一个...

    jquery+ajaxform+springboot控件实现数据更新功能

    ### 知识点五:提示框的使用和美化 在用户进行数据更新操作后,通常需要向用户反馈操作的结果。传统的做法是使用JavaScript的alert弹窗,但这种方式体验较差。文档中提到了使用notifications插件来进行提示框的美化...

    JQuery ajax 返回json时出现中文乱码该如何解决

    在使用JQuery的ajax方法调用返回JSON格式数据时,如果遇到中文字符显示乱码的情况,这是一个常见的问题,尤其在前后端交互过程中,因为编码格式不一致导致的字符显示错误。为了解决这个问题,我们需要确保前后端在...

    vue.js过滤器+ajax实现事件监听及后台php数据交互实例

    Vue.js中的过滤器(Filter)可以用于对数据进行格式化,它们可以用在两个地方:双花括号插值和v-bind表达式中。在插值表达式中,过滤器可以写在"|"后面,以"管道符"的形式存在。在Vue实例的创建过程中,可以通过Vue....

    基于SpringBoot音乐播放网站

    使用ajax连接前后端 使用框架Bootstrap、JQuery开发前端界面 使用MySQL存储歌曲链接和图片链接 使用cookies存储用户id等 使用阿里云OSS存储歌曲的大部分mp3文件 主要分为六个模块 用户管理模块:用户登录、用户注册...

    jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例

    昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来批量提交复选框数据,...

    ASP源码—仿腾讯网地方新闻门户网源码 v1.0.zip

    7. **评论模块**:用户可以对新闻进行评论,评论功能通常包括提交、显示和回复,这部分可能涉及到对评论表的操作和AJAX技术以实现异步加载。 【学习与应用】 这个源码对于初学者来说,是一个很好的实践平台,可以...

    springboot-music.zip

    使用ajax连接前后端 使用框架Bootstrap、JQuery开发前端界面 使用MySQL存储歌曲链接和图片链接 使用cookies存储用户id等 使用阿里云OSS存储歌曲的大部分mp3文件 2.主要分为六个模块 用户管理模块:用户登录、用户...

    基于SpringBoot+Mybatis+MySQL5.7的一个音乐播放网站

    使用ajax连接前后端 使用框架Bootstrap、JQuery开发前端界面 使用MySQL存储歌曲链接和图片链接 使用cookies存储用户id等 使用阿里云OSS存储歌曲的大部分mp3文件 主要分为六个模块 用户管理模块:用户登录、用户注册...

    js代码库,封装经常用到的组件

    在压缩包的文件列表中,只有一个名为"Libs"的目录,这可能是存放这些JavaScript库和其他相关资源的地方,如CSS样式表、图片或者本地化文件。通常,库会包含一个主文件(如`control.js` 和 `platform.js`),其他的...

    javascript实现省市地方级联实例

    5. **AJAX请求**:使用XMLHttpRequest对象或现代浏览器提供的fetch API来发送异步请求,获取服务器端的数据。请求成功后,我们需要解析返回的JSON字符串,并更新城市下拉列表。 6. **错误处理**:在处理过程中,应...

    基于SpringBoot+Mybatis+MySQL5.7的一个音乐播放网站+源代码+文档说明

    使用ajax连接前后端 使用框架Bootstrap、JQuery开发前端界面 使用MySQL存储歌曲链接和图片链接 使用cookies存储用户id等 使用阿里云OSS存储歌曲的大部分mp3文件 主要分为六个模块 用户管理模块:用户登录、用户注册...

    Ajax请求中的异步与同步,需要注意的地方说明

    之前做项目时候,用到一个表格控件,它的数据是异步加载的,我在这个表格绑定数据的函数下面友做了一些业务处理,运行页面的时候,用浏览器在我写业务处理那地方打上断点跟踪,它确实执行了,可以最后显示的时候,它...

    2009.12.28——jquery自动提示

    jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。在2009年,jQuery已经非常流行,因此这个自动提示功能可能是那个时期的Web开发技术实践。 描述中提到的"博文链接:...

    没事写个网站。献出源码

    【描述】:“中间用到了Ajax,Membership,还有自己重写的简单页面类。以极简单的三层结构,简单易懂。适合新手学习。”这段描述提供了关于项目的关键信息: 1. **Ajax**:Ajax(异步JavaScript和XML)是一种在无需...

    jQuery实现列表上下移动置顶+带入数据库文件

    首先,我们需要了解jQuery,这是一个强大的JavaScript库,简化了DOM操作、事件处理、动画和Ajax交互。在这个项目中,jQuery将用于处理用户的交互,如点击事件,然后更新列表的显示状态。 1. **jQuery选择器和DOM...

    pic-view.rar_PIC_javascript_pic view_picview.a

    4. "pic-img" - 这个目录很可能是存储图像资源的地方,包括用户浏览的图片以及应用可能用到的图标和其他图形元素。 5. "pic-js" - 这个目录可能包含JavaScript源代码,特别是与图像浏览功能相关的脚本,如Ajax请求、...

    超炫效果的jQuery相册插件

    同时,考虑到现代Web应用的异步加载需求,"ajax"标签提示我们这个插件可能使用了jQuery的$.ajax()或$.get()、$.post()方法来动态加载相册图片,从而提升用户体验,避免一次性加载所有图片导致页面加载过慢。...

    快速解决ajax传递为空但显示在页面上为undefined的问题

    在处理前端页面与后端数据交互的过程中,经常需要用到Ajax技术进行异步请求。然而,有时候我们会遇到一个问题,即后端传递的某些数据在前端页面上显示为undefined。这通常是因为后端返回的对象中某些属性的值为null...

Global site tag (gtag.js) - Google Analytics