1、什么是 AJAX ?

w3c的解释是这样写的:

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

这个解释对于一个搞后台开发,或者大牛级的前端者来说,再好理解不过了,但如果是一个刚学js的朋友,可能就不是那么好理解了,什么是异步,什么是数据交换,什么是XML,完全不懂,就像当初的我一样。为此,本来还不是怎么难的ajax,听这么一解释,瞬间就觉得是块不好啃的骨头了,无形中就产生了一种“难”的意识,正是这种意识,让我们走了很多弯路。

2、笔者的理解

好了,废话说了这么多,切入正题。什么是ajax呢,笔者的一种简单粗暴的理解就是:ajax就是一个封装好的,用于不同的页面(这里的页面不是指单纯的html,包括前后台的东西)间传输数据和接收数据的方法。下面举个例子详细,比如,现在我们要做一个登录功能(这是典型的ajax案例),做这个功能该怎么做我想大家都知道,首先是输入用户名和密码,如果用户名存在且密码正确,就登陆成功,否则登录失败。这是我们在登录时直观看到的现象。但登录的真正流程,是这样的:

1、首先,我们输入自己的用户名和密码,点击确定。意思是我们用户名和密码输入完毕。

2、当我们点了确定后,页面中的Js代码会获取我们输入的值。

3、将获取的用户名和密码提交到数据库。当我们提交时,我们需要指明提交到什么地方。用什么方式提交(这就是前面我说的传输数据)。

4,、把我们提交的用户名和密码拿到数据库进行匹配,如果匹配成功,返回一个true值,否则返回false。

5、根据返回的值,就可以确定我们是否登录成功了。如果为true,登录成功,否则,登录失败。

看到此处的人,未免觉得我写得有点多余,这些谁都知道。但我写这个是针对一点ajax基础都没有,或者是完全没理解ajax的人写的。再说了,存在即必然,分析上面的登录,我的目的是可以将其模拟成现实生活中的一个场景,让看的人更容易记住,理解,这样才算对得起阅读人在这篇文章上花的时间,对吧。模拟成什么场景呢,就拿我们高中上学迟到了来说吧。为什么用高中呢,因为高中校园一般是不允许非在校学生和老师进入的。所以如果你没按时到校,校门一关,即便是里面的学生,你想进去,也得过得门卫验证这一关。这个过程跟登录一模一样。请看下面:

1、要想证明你是学校的学生,你需要说你是哪个班的,叫什么名字,这相当于上面的用户名和密码。

2、当我们说完了我们的班级和名字时,门卫会用笔记录下来。这相当于js获取值。

3、门卫将记录下来的班级和名字交到对应班级的班主任手里进行确认。他是以明文(get)发过去,还是加密了(post)再发过去,这是提交方式;是发到班主任的QQ邮箱,还是网易邮箱,这是提交地址。

4、班主任收到纸条后,会根据本班的学生表进行对比(假设班主任是新来的,记不得学生名字),如果有这个名字,则告诉门卫说我是他班的,否则说我不是。这里的学生表就相当于数据库。告诉门卫的“是”或“不是”就是上面的true或false。

5、门卫根据班主任的回答,决定让不让我进校,这就是登录是否成功。

3、代码的编写

好了,场景模拟完毕,我们开始写ajax:相信我,这次你肯定看的懂ajax了,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

varmyclass=$("#class").val();//告诉门卫我的班级

varmyname=$("#name").val();//告诉门卫我的名字

vardata={username:myname,password:mypassword}

/* 门卫根据我说的写成一张纸条:{班级:我的班级,名字:我的名字}如{class:高三(7)班,username:爽歪歪}*/

$.ajax({

type:'post',//提交方式,他是以明文(get)发过去,还是加密了(post)再发过去

url:'data.json',//提交地址,QQ邮箱,还是网易邮箱

data:data,//提交的数据,就是根据我说的那张写好的纸条

success:function(result){

/*success的意思如果门卫准确的把纸条送到了班主任的手里,并且班主任进行了比对,

* 告诉门卫我是不是他们班的学生,括号里的result就是班主任说的“是”或“不是”

*

*

* 至于学生表是怎么制作的。彩色版还是黑白版,我们不需要关心,也就是说数据库是怎么设计的,我们不关心

* 班主任是怎么进行比对的,一行一行对比,还是一列一列对比,我们也不需要关心。

* 这就是java后台做的事情

*

*

* 我们要做的,就是把班级和名字告诉门卫,然后等结果,看是让我进,还是不让我进。我们也只能做这些,毕竟我们还在校门外,对吧

*/

if(result=="是"){//如果说的我是

alert("让我进校");//让我进校

}else{//如果说的我不是

alert("不让我进校");//不让我进校

}

}

});

是不是有种恍然大悟的感觉,原来ajax就是这么回事,确实不难啊。这下好了,就算不懂,跟着套我也能把它套出来了。

ajax学什么难,ajax分析与讲解,其实ajax一点也不难,只是你把它看难了相关推荐

  1. 学计算机的怎样分析TCGA数据库,开启数据挖掘之门:TCGA数据库入门必看!

    原标题:开启数据挖掘之门:TCGA数据库入门必看! 喜欢我的都关注我了~ 在肿瘤研究领域,相信没有人不知道The Cancer Genome Atlas (TCGA). TCGA是美国国家癌症研究所( ...

  2. Java程序员从笨鸟到菜鸟之(八十九)跟我学jquery(五)jquery中的ajax详解

    Ajax让用户页面丰富起来, 增强了用户体验. 使用Ajax是所有Web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还是会因为每个开发人员的而有所差异.jQuery提供了一系列Ajax函数 ...

  3. php中file对象实例,AJAX_File, FileReader 和 Ajax 文件上传实例分析(php),File FileReader 可以干什么? Ajax - phpStudy...

    File, FileReader 和 Ajax 文件上传实例分析(php) File FileReader 可以干什么?Ajax文件上传例子 FileReader 对象可以读取文件的 Base64编码 ...

  4. Ajax 改造,第 3 部分: 用 jQuery、Ajax 选项卡和照片 carousel 改进现有的站点

    关于本文 Ajax 资源中心 请访问 Ajax 资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档.教程.论坛.blog.wiki 和新闻.任何 Ajax 的新信息都能在这里找到. ...

  5. ajax技术的实质是什么意思,什么是Ajax?Ajax的原理是什么?Ajax的核心技术是什么?Ajax的优缺点是什么?...

    Ajax是一种无需重新加载整个网页,能够更新部分网页的技术.Asynchronous JavaScript and XML的缩写,是JavaScript.XML.CSS.DOM等多个技术的组合. Aj ...

  6. Ajax入门教程(非常详细)动力节点ajax教程资料分享

    Ajax教程 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式.快速动态网页应用的网页开 ...

  7. 四六级真题长难句分析与应用

    一.基本结构的长难句 基本结构的长难句主要考点:断开和简化 什么是长难句? 其实就是多件事连在了一块,这时候句子就变长.变难了 分析步骤: 第一件事就是要把长难句给断开,把多件事断开成一件一件的事情, ...

  8. 2023年中国人民大学信息资源管理学院信息分析考研上岸前辈经验

    一.考研择校经验与建议 1.择校经验 图情专业的院校主要有:武大.南大.人大.中科院.中信所等,大部分集中于北京地区,所以竞争尤为激烈,报考时一定要看清楚招生要求与招生人数,因此,我当时就是根据招生人 ...

  9. 考研英语长难句分析方法

    无论是什么种类的英语考试,让同学们头痛的事有两个,一个是单词不认识,另一个就是单词都认识,但句子却看不懂.相信只要这两个问题解决了,那所有的英语考试的难度就降低了一大半.     首先就考研的阅读理解 ...

  10. 24届近5年河北工业大学自动化考研院校分析

    今天给大家带来的是河北工业大学控制考研分析 满满干货-还不快快点赞收藏  目录 一.河北工业大学简介 学校简介 学院简介 二.近五年分数信息对比 三.考试科目 人工智能与数据科学学院 四.初试考试大纲 ...

最新文章

  1. Pokémon Go数据收集是否带来隐私问题
  2. 乐鑫代理启明云端分享|ESP32系列教程之三: VS Code远程连接Linux
  3. 一次java导出pdf的经历
  4. php json_decode NULL
  5. 关于最近Vue3+ Vue-CLI3+比较热门的十几篇文章
  6. echarts自定义y轴刻度信息
  7. Spark中的Shuffle算子
  8. 通过网易云api实现一个简单的音乐播放器
  9. Oracle中除数为0的解决办法
  10. Spine 2D骨骼动画教程-完整实例入门教程
  11. 红蜻蜓抓图精灵抓视频播放器画面结果一片漆黑解决教程
  12. 如何在WordPress菜单中显示图标[WordPress插件]
  13. linux——signal信号(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP、SIGABRT...........................)
  14. bada-开发入门之HelloWorld(上)
  15. 贪吃蛇大作战中的“马太效应”
  16. CDN加速可以为网络用户解决哪些难题?
  17. Gin框架源码解析【建议收藏】
  18. 大数据Hadoop等大数据架构学习
  19. 基于javaweb+jsp的鲜花花卉销售管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)
  20. [转]程序员的恶性循环 [时刻警醒自己]

热门文章

  1. Web浏览器兼容模式笔记
  2. 打开的html文件是字母,HTML文件怎么打开?
  3. C++考试习题之考试预测题
  4. Facebook提出SEER:13亿参数,10亿张图,无需标记,自监督训练数据集!
  5. 如何实现VMware下Ubuntu和Windows之间的复制粘贴
  6. 安卓手机上 K 歌,声音延迟怎么解决?
  7. Linux内核驱动之efi-rtc
  8. TDK提供哪些不间断电源所需的可靠元件?
  9. js 如何判断闰年?
  10. 硬盘拷贝使目标盘变小怎么办