Ajax技术利弊分析

深入浅出Ajax程序设计实战指南 本文还有配套的精品资源,点击获取 简介:Ajax是一种允许网页实现异步更新的技术,核心在于JavaScript,而数据交换格式多用JSON替代了XML。本教程将详细介绍Ajax的工作原理、XMLHttpRequest对象的使用、JSON与XML的对比、jQuery与原生Ajax的区别、以及响应式设计中Ajax的应用和局部刷新的优缺点。通过本课程,学习者将能够理解并掌握Aja... 阅读详情
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的现有成熟表现层框架结合使用是比较好的一个选择。因需而用不会给自己断掉很多后路。一味的尝试或许就有苦果等待、诱惑、刺激、引导你失去理智。
Ajax是一把双刃剑,应用的当才能展现他应有的能力。

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

相关推荐

Java分布式流处理,flink+kafka实现电商网站个性化商品推荐系统

在现代电商环境中,用户每天都会浏览大量商品页面,而这些行为数据中蕴藏着丰富的信息。通过分析用户的浏览历史、购买记录以及对特定商品的兴趣程度,我们可以为用户提供更加个性化的商品推荐,从而提升用户体验和转化率。为了实现实时的个性化推荐,我们需要构建一个能够快速处理并响应用户行为变化的数据处理管道。

横竖撇折点 2144

Ajax 技术的适用范围

Ajax适用场景   1.表单驱动的交互   传统的表单提交,在文本框输入内容后,点击按钮,后台处理完毕后,页面刷新,再回头检查是否刷新结果正确。使用Ajax,在点击sunmit按钮后,立刻进行异步处理,并在页面上快速显示了更新后的结果,这里没有整个页面刷新的问题。   2.深层次的树的导航   深层次的级联菜单(树)的遍历是一项非常复杂的任务,使用JavaScript...

weixin_34029949的博客 206

两相变频交错PFC实战:从论文理论到PSIM仿真的完整避坑指南

本文详细解析了两相变频交错PFC技术从理论到PSIM仿真的完整实现过程,特别针对CRM模式下的BOOST PFC设计挑战提供实用解决方案。涵盖周期值比较法与RS触发器法的对比实施、PSIM仿真中的过零处理与收敛性优化等核心问题,并给出硬件实现的进阶建议,助力工程师高效完成高功率密度PFC设计。

weixin_30632089的博客 422

AJAX的优缺点

ajax的优缺点

SHDUAO的博客 1205

Django 小实例S1 简易学生选课管理系统 —— 〇、初步介绍与演示

python Django实现的一个简易的教务选课系统。 介绍与演示的视频版本已发到我的b站: https://www.bilibili.com/video/BV1er4y1w7ty。 项目已上传到我的github: https://github.com/BigShuang/SimpleStudentCourseManagementSystem。 S1总目录: 〇、初步介绍与演示 一、项目流程梳理与数据库设计 ======================= 大爽歌作,made by big shuang.

大爽老师的博客 5944

Flink CDC 1.18.1 Oracle 数据同步到postgresql

8、修改Flink的配置文件,主要是各种服务的绑定地址,默认为localhost,统统改为0.0.0.0,如:rest.address: 0.0.0.0 #localhost。将flink-sql-connector-oracle-cdc-3.0.1.jar复制到flink-1.18.1/lib目录中。6、下载 flink-connector-jdbc-3.1.1-1.17.jar,postgresql-42.7.3.jar。7、安装postgresql就不说了,相信你已经有了数据库了。

ynzhangyao的专栏 1799

AJAX 详解

怎样创建xmlHttpRequest对象?怎样通过get、post传递传递数据?怎样控制http头信息?通过ajax能传递什么格式的数据?怎样接收服务器传递的数据?怎样控制数据接收的进度?如果控制数据传递过程中的错误?关于跨越传输的问题?a. AJAX是什么?AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

m0_61869253的博客 1697

钢铁雄心4存档修改全攻略:从基础设置到高级玩法(附国家代码表)

本文详细解析《钢铁雄心4》存档修改技巧,从基础设置到高级玩法全覆盖。包括存档文件位置、格式转换、国家实力调整、国际关系修改等实用内容,并附赠国家代码表。掌握存档修改技能,解锁游戏全部潜力,实现精细参数控制,超越控制台指令的局限。

weixin_29233857的博客 1431

概念介绍——了解ajax的优缺点及其中readyState属性的用处

了解ajax的优缺点及其中readyState属性的用处

weixin_56286359的博客 660

【乐鑫】唤醒词修改方法

乐鑫科技的语音识别模块(如ESP-SR)支持自定义唤醒词,但需通过官方工具链完成。

以实战经验介绍行业知识 826

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1004

Ajax应用场景

Ajax不是万能的,在适合的场合使用Ajax,才能充分发挥它的长处,改善系统性能和用户体验,绝不可以为了技术而滥用。Ajax的特点在于异步交互,动态更新web页面,因此它的适用范围是交互较多,频繁读取数据的web应用。现在来看几个Ajax的应用实例,读者可以了解如何使用Ajax技术改进现有的web应用系统。场景1.数据验证在填写表单内容时,需要保证数据的唯一性(例如新用户注册填写的用户名),因此必...

weixin_34310127的博客 555

在 ABAP 环境中创建 Job Catalog Entry 和 Job Template 的完整实践指南

摘要:本文介绍了SAP BTP ABAP环境中Application Job的云原生解决方案,对比传统后台作业模式。重点阐述了Job Catalog Entry和Job Template两大核心概念,通过库存重估业务场景演示如何实现可调度类、创建Job Catalog Entry及Job Template。文章详细说明了从ABAP类到Job Catalog Entry再到Job Template的完整链路,并分享实际项目中的设计经验和注意事项,帮助开发者将传统后台作业迁移到Application Job框架

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 232

SEO:ajax是搜索引擎杀手?

前几天用了一下google的开源项目GWT(Google Web Toolkit)。GWT是个很有用、也很有趣的东西。它的一个理念是:使用纯jscript来创建你的网站。GWT的一个示例网站Kitchen Sink,页面相当复杂,主页HTML代码却只有寥寥十几行——绝大部分代码都是用jscript生成的。问题来了:这样的网站能被搜索引擎收录吗?google的项目居然不支持SEO,这意味着什么?

浮生日记 9883

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ria ajax_使用基于套接字的RIA技术在Ajax应用程序中实现实时服务器推送

Ajax技术已经存在了相当一段时间,并且发展势头确实开始加快。 越来越多的网站在设计时都考虑了Ajax,并且开发人员已开始将Ajax推向极限。 随着诸如社交网络和协作报告之类的现象的出现,全新的需求开始出现。 如果有其他用户对正在监视的任何活动进行了更改,则希望通知用户。 或者,如果网站显示动态数据,例如股票市场价格,则必须立即通知所有用户有关更改的信息。 这些方案使他们遇到了称为“服务器...

cuyi7076的博客 313

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

在 Ajax 应用程序中实现实时数据推送

Sandeep Malik, 技术主管, WSO2 Inc                全新的高级用户界面(UI)应用程序需要某些 “服务器推送” 方面的特性,使得客户端能够在服务器端发生更改时立即得到通知。遗憾的是,HTTP 规范并未解决任何服务器端发起的通信的问题,因而服务器推送一直以来都是通过客户端轮询实现的。这种技术可能会生成大量不必要的流量和非最优化的应用程序。幸运的是,某些富

它山之石,可以攻玉 913

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Web实时通信技术的几个发展阶段

随着web技术的发展和硬件的革新,web应用已逐渐在侵占着C/S软件的领域。不得不说,B/S模式的应用将是未来的主流,当然这只是本人的一家之言.当用户在浏览器中能做的事情越来越多的时候,当用户慢慢习惯只用浏览器来获得一切需求的时候,到那时他们会发现原来他们的电脑只需要一个浏览器,仅此而已。这就是ChromeBook的发展理念吧。当然这个时候什么时候能到来却是个未知数,扯远了。 今天要说说的是

那个谁的空间 5582

《Web 应用项目开发》

在深入学习《Web 应用项目开发》的过程中,犹如在技术的广袤天地里穿梭,对其利弊有了深刻且多维度的认知,同时也积累了一些经典的代码案例,在此与大家分享我的所学所悟。

2401_85123679的博客 918

前后端分离的深度理解

前后端分离本质上是工作职责的细化。这两年前后端分离的呼声越发高涨,最重要的原因在于后端工程师不能简单的完成前端方面的工作。前端这段时间以来新的技术层出不穷,这种情况下后端无法简单的掌握前端技术,即使对前端来说也有一定的负担。前端的门槛越来越高,一个人无法将所有的事情都做完,也是前后端分离的一方面因素。 典型的业务场景 前后端分离其实也并非万能良药,对应不同的业务场景情况会有所不同。同样的应用场...

qq_39581763的博客 473

大型Web2.0网站架构

本文摘录自:杂志《程序员》2009.1 作者:疯狂代码 大型网站需注意和讨论的问题:1.海量数据处理2.数据并发处理3.文件存储问题4.数据关系处理5.数据索引问题6.分布式处理7.Ajax利弊分析8.数据安全性分析9.数据同步和集群处理问题10.OpenAPI以及数据共享11.大量LIKE,OR,IN以及多表查询带来的性能屏障12.大量上传

iqduke的专栏 390

javascript继承

http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html http://www.cnblogs.com/kkun/archive/2012/01/06/2314885.html     还是不要用这个做复杂的事情为好!

brucexu1978的专栏 558

关于web多标签多条件筛选的思考以及缓存的正确使用方法(上)

做项目的过程中,发现一次远程链接数据库的耗时大概是300ms~400ms,切身体会到了前辈们经常说的减少链接的重要性,用了缓存后页面的打开时间从1.5s减少到400ms 前提: 那么来说一说正题,web中多标签多条件筛选的设计.有两个思路: 一种是通过页面刷新来获取数据 一种是通过ajax来异步获取数据 思考: 大的方向两条,分支很多,想搜索一下有没有最优方案,似...

weixin_30311605的博客 483

大型网站架构不得不考虑的10个问题

这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构。我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必须要面

fyqcdbdx的专栏 1046

XMLHttpRequest在Web开发利弊

 XMLHttpRequest在Web开发利弊 一、引言   在XMLHttpRequest对象和AJAX给用户和开发者带给巨大好处的同时,也许还有一些问题你没有考虑到-但是的确到了值得引起每个人注意的时候了。甚至非常讨厌的人也都喜欢XMLHttpRequest,因为它提供给程序员真正梦想的功能。也正是因为有了这样的新技术,Web应用软件开始变得具有象桌面应用软件相似的行为。如今,问题

shrimp88的专栏 388

Ajax与WebGIS

      现在越来越多的桌面应用转向Web平台,而人们也一直希望日益丰富的Web应用能够做到简单易用、高效并具有良好的交互性能。随着Google推出Google Maps、GMail等一系列服务让人们看到了曙光,感受到一种全新的Web使用体验。这种体验的显著特点就是无需下载、安装,操作响应速度快,具有良好的互动性,尤其是再也没有出现以往那种在等待返回结果期间由于浏览器刷新而造成的白屏现象。   

luckisok的专栏 1304
上一篇: JavaScript学习日记(二)
下一篇: JS中的event 对象详解
轻鸿飘羽
博客等级 码龄16年 124粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值