ajax的全称是"Asynchronous javaScript and XMl"(异步的javaScript和XML),它并不是指一种单一的技术,而是有机的利用一系列交互式网页应用相关的技术所形成的结合体。它的出现,揭开无刷新更新页面的新时代,并有代替传统的web方式和通过隐蔽的框架进行异步提交的趋势,是web开发应用的一个里程碑。(该段文字摘自《锋利的jquery》一书)

下面我们进入正题,介绍ajax的优缺点。

ajax的优点

1、不需要插件支持

只要用户允许javaScript在浏览器上执行,那么ajax就可以不用任何插件直接被主流的绝大数浏览器支持,这样作为一名开发人员,你就可以放心使用该技术,来完成和服务器的数据交互。

2、优秀的用户体验

比如你打开了一个网页,网页中的数据对应着一个按钮可以更新数据,那么你点击这个按钮就可以执行刷新数据,而不是将整个页面重新刷新得到你想要的数据。因为web程序回应的内容相比之下就减少了,便可以更为迅速的为你的操作做出响应。

3、提高web程序的性能

传统的客户与服务进行的数据交互是:客户通过form表单提交数据,而数据获取更是通过全页面的刷新获取整页的内容。而ajax和传统模式相比最大的不同就是传输数据的方式,ajax模式只需要通过XMLHttpRequest这个对象提交用户想要提交的内容,即做到了根据用户的需要发送制定的数据。

4、减轻服务器和带宽的负担

如果你理解ajax的原理,这点你就会很有深刻的理解(本人也是小白,为了更好的学习自己做的笔记)。ajax的作用相当于在用户和服务器之间建立一个中间层,使用户的操作和服务器响应达到异步化。ajax在客户端创建Ajax引擎,把之前传统模式下一些在服务器端的工作搬到客户端进行,便于客户端进行资源处理,同时减轻了服务器端和带宽的负担。

问题1:都有那些工作从服务器端搬到客户端进行处理了呢?

2、ajax的缺点

1、浏览器对XMLHttpRequest对象的支持度不足

ajax技术是时代技术发展的产物,之前的浏览器并没有对其进行支持。IE浏览器第一版支持XMLHttpRequest也是在5.0以后,其他的浏览器支持XMLHttpRequest对象更是在其后。为了使ajax可以在众多不同版本浏览器得到支持,开发人员不得不花费大量的时间精力编码兼顾各个浏览器之间的差异,这使得ajax的开发难度比普通的web开发难度高出很多,这也造成很多程序员对其望而生畏。

2、破坏浏览器前进、后退按钮的功能

在传统的网页中,用户习惯使用浏览器自带的"前进"和"后退"按钮,然而ajax却改变了web浏览的习惯。如何改变的呢?举个例子,一个用户在浏览某一个网页,点击了一个按钮触发了ajax请求交互后,突然感觉又想回到点击ajax请求之前的页面状态,如果该客户点击了浏览器自带的"后退"按钮,此时却发生了浏览器回到了先前的一个页面,通过ajax请求的交互的数据全都完全消失了。虽然通过一些方法(添加锚点)可以解决这个问题,但是在实现过程中比传统模式麻烦很多,造成喝多开发人员宁愿放弃该功能,也不会解决该问题。目前很多浏览器前进和后退按钮仍然是网页的前进和后退。

3、对搜索引擎支持不足

通常搜索引擎都是通过爬虫的方式对网络上数据亿计的数据进行搜索和整理的,但是目前爬虫程序还不理解那些奇怪的javaScript有时造成页面混乱。如果一个站点是通过ajax技术,那么在推广时会相比传统模式会处于劣势。

4、开发和调试工具缺乏

ajax技术中的重要组成部分是javaScript,但是目前却是缺少javaScript良好的调试工具。很多web开发人员对javaScript望而生畏。

以上就是本小白学习到的ajax的优缺点,推荐《锋利jquery》一书,上面的介绍更详细,本人也是在该书进行的总结笔记。谢谢

javascript中ajax的优缺点相关推荐

  1. JavaScript中ajax如何不刷新,JavaScript基于Ajax实现不刷新在网页上动态显示文件内容...

    本文实例讲述了JavaScript基于Ajax实现不刷新在网页上动态显示文件内容的方法.分享给大家供大家参考.具体如下: 下面的JS代码是一个最基础的JS的ajax实现,可以动态显示服务器上的文件aj ...

  2. JavaScript中Ajax

    Ajax技术,就是指:向服务器请求额外的数据而无须重新加载整个页面.其核心就是 XMLHttpRequest对象.(简称:XHR) 在这里,我们先讨论IE7及更高版本,以及FF,Opera,Chrom ...

  3. JavaScript中Ajax源码

    很多面试会要求介绍Ajax源码,于是这里贴出来以便查阅 function loadXMLDoc() {var xmlhttp;if (window.XMLHttpRequest){// code fo ...

  4. CSS、JavaScript和Ajax实现图片预加载的三大方法及优缺点分析

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画 廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发 ...

  5. javascript优缺点_为什么要在JavaScript中使用静态类型? 优缺点

    javascript优缺点 by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? 优缺点 (Why use static t ...

  6. ajax实现给JavaScript中全局变量赋值(转)

    原文地址:ajax实现给JavaScript中全局变量赋值 问题简化: <script type="text/javascript"> var a=1 ; functi ...

  7. 【从0到1学Web前端】javascript中的ajax对象(一)

    [从0到1学Web前端]javascript中的ajax对象(一) 如今最流行的获取后端的(浏览器从server)数据的方式就是通过Ajax了吧.今天就来具体的来学习下这个知识吧.假设使用ajax来訪 ...

  8. 使用fetch封装ajax_如何使用Fetch在JavaScript中进行AJAX调用

    使用fetch封装ajax I will be sharing bite sized learnings about JavaScript regularly in this series. We'l ...

  9. 北风网ajax,[T8:JavaScript中利用Ajax实现客户端与服务器端通信北风网收费视频讲座.ppt...

    [T8:JavaScript中利用Ajax实现客户端与服务器端通信北风网收费视频讲座 Ajax简介 XMLHttpRequest对象 综合案例 1.HTTP请求 现在,很多浏览器都可以直接从JavaS ...

最新文章

  1. SSL协议安全系列:PKI体系中的证书吊销
  2. redis集群之哨兵模式【原】
  3. workbench提示工作负载高度不平衡_搞CAE分析的孩子不容易,麻烦您,非线性,请收敛...
  4. Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)
  5. python绘制数字23_Python 画数码数字8
  6. 解决ORA-27103:internal error错误一例
  7. termux安装渗透工具一
  8. matlab画图(plot)命令。长期更新!
  9. airpods安卓延迟怎么解决_穿越火线手游网络延迟怎么解决,开黑最管用的手游加速工具就在这!...
  10. Android数字时钟神一般的实现——TextClock
  11. github上传代码全部流程
  12. 一键添加QQ群的方式(更新中。。。)
  13. python取绝对值数组_Python算法——求数组中绝对值最小的数
  14. FFmpeg之FLV Muxing Demuxing
  15. Kubernetes暴漏服务类型之Nginx Ingress
  16. 【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
  17. 【Python机器学习】聚类算法任务,评价指标SC、DBI、ZQ等系数详解和实战演示(附源码 图文解释)
  18. Endnote下载的pdf文件合并到同一个文件夹
  19. 计算机往届生考研失败找工作,终于发现应届生和往届生考研复试会被歧视吗-考研复习...
  20. input输入框限制中文汉字只能输入20个字符,英文10个字符!

热门文章

  1. logback日志pattern_[SpringBoot2.X]28- Spring Boot 的日志管理
  2. join left semi_Hive的left join、left outer join和left semi join三者的区别
  3. python入门经典-入门python有什么好的书籍推荐?
  4. 学python能做什么-学了Python都能干什么,哪个最赚钱?
  5. python画柱状图-Python 使用 matplotlib 画柱状图教程
  6. python工资一般多少-Python工资一般是多少 看完吓你一跳
  7. python可以干嘛-python都可以用来做什么
  8. 学python要多久-python入门要学多久
  9. python自学行吗-零基础如何学习Python?看Python视频就可以吗?
  10. 学完python能做什么-学完Python开发可以从事哪些行业?