资讯专栏INFORMATION COLUMN

JavaScript考点之一,AJAX总结(一),AJAX概述

ermaoL / 422人阅读

摘要:即同步请求,浏览器需要等待服务器处理请求,导致了浏览器端的阻塞。这使得应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

前言

博主博客:Stillwater的博客
知乎专栏:前端汪汪
本文为作者原创转载请注明出处:

http://hiztx.top/2017/01/11/a...

一、什么是AJAX?

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。是一种用来创建交互式网页应用的网页开发技术。之所以说AJAX是一项综合技术,是因为AJAX包含了以下技术:

基于HTML和CSS进行表示;

使用 DOM进行动态显示及交互;

使用 XML 和 JSON 进行数据交换及相关操作;

使用 XMLHttpRequest 进行异步数据查询、检索;

使用 JavaScript 将所有的东西绑定在一起。

注:asynchronous 异步的
英 [eɪˈsɪŋkrənəs] 美 [e"sɪŋkrənəs]

二、为什么要用AJAX? 传统Web应用存在的问题

传统的Web应用提交表单时会向网页服务器发送一个请求。服务器接收并处理传来的表单,然后送回一个新的网页。但这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML码往往是相同的

由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。这导致了用户界面的回应比本机应用慢得多。即同步请求,浏览器需要等待服务器处理请求,导致了浏览器端的阻塞

AJAX的出现解决的问题

AJAX应用可以仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少(大约只有原来的5%),服务器回应更快了。局部刷新

AJAX采用异步模式,通过XMLHttpRequest对象(下篇博客具体介绍),发送给服务器请求以后,不用等待服务器的处理结果,用户可以继续进行操作。非阻塞的方式提升了用户体验。

总的来说就好像,浏览器大哥有一书包的好东西,但是他只想给服务器大哥其中一个好东西。传统Web应用处理方法是,浏览器大哥直接把书包给服务器大哥,他等服务器大哥自己找完以后,才能拿回自己的书包,继续干别的事情。AJAX的处理方法是,浏览器大哥找了个叫XMLHttpRequest的小弟来做这件事。小弟先从书包里找出来那个东西,然后再给服务器大哥。服务器拿到东西以后处理了一下再把东西还给XMLHttpRequest小弟。这期间浏览器大哥爱干嘛干嘛。

三、AJAX的优缺点 优点:

能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。

通过异步模式,不阻塞用户,从而提升了用户体验。

AJAX不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。

AJAX引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

缺点:

破坏浏览器的后退与加入收藏书签功能。在用AJAX动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。

AJAX如果使用GET方法,会暴露了与服务器交互的细节。

对搜索引擎的支持比较弱。通过AJAX动态更新的页面可能无法被搜索引擎搜到。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81177.html

相关文章

  • 全栈开发自学路线

    摘要:前言这里筑梦师是一名正在努力学习的开发工程师目前致力于全栈方向的学习希望可以和大家一起交流技术共同进步用简书记录下自己的学习历程个人学习方法分享本文目录更新说明目录学习方法学习态度全栈开发学习路线很长知识拓展很长在这里收取很多人的建议以后决 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程...

    galaxy_robot 评论0 收藏0
  • 全栈开发自学路线

    摘要:前言这里筑梦师是一名正在努力学习的开发工程师目前致力于全栈方向的学习希望可以和大家一起交流技术共同进步用简书记录下自己的学习历程个人学习方法分享本文目录更新说明目录学习方法学习态度全栈开发学习路线很长知识拓展很长在这里收取很多人的建议以后决 前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程...

    Scorpion 评论0 收藏0
  • 初级前端开发面试总结

    摘要:前端面试总结先说背景,本人年月毕业,去年十月校招到今年月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点总结包含基础,基础,常见算法和数据结构,框架,计算机网络相关知识,可能有的点很细,有的点很大,参考个人情况进行总结,方便对知识 前端面试总结 先说背景,本人2018年7月毕业,去年十月校招到今年10月一直在做前端开发工作,年前打算换工作,就重新梳理下面试考点总结包含: ...

    jifei 评论0 收藏0

发表评论

0条评论

ermaoL

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<