攻入Javascript,究竟什么是AJAX
什么是AJAX
时隔半年,当AJAX再一次出现在我脑海中时,从最初的模糊到现在的越来越明确。那么究竟什么是AJAX?它和form表单提交有什么区别?
如果你使用过AJAX和表单提交的话,想必会发现一件很重要的事,那就是AJAX提交,页面不会刷新,并且可以选择同步或异步。
体验一把
form篇

我们发现传统的form提交,页面进行了跳转。
AJAX篇

可以看到通过AJAX发送的请求并没有使页面进行刷新跳转。
form表单提交页面为什么刷新
那么为什么form表单提交就会进行页面刷新呢,或者说它为什么要刷新。在我看来导致这个的根本原因是因为form没有提供一个回调,既然没有提供回调,我们就无法获取到服务器端返回的内容,因此form表单提交就类似于重新打开了一个页面。
那么为什么早期不提供这个回调呢?或许是因为当时没这个需求,只是觉得简单一点就好。然而在当今,这远远满足不了我们的需求,所以AJAX油然而生是必然的。
AJAX解决了什么
也许当初AJAX只是为了解决页面无刷新,但如果他想解决这个问题,肯定是不能再使用之前form那种方式来提交数据了,并且还得有办法让程序获取到服务器端返回的数据。因此AJAX提供了一个事件监听器,当服务器响应时,则会调用对应的函数。而我们需要做的就是将返回的数据通过DOM操作来更新页面,这样就达到了页面无刷新的效果。如果要说传统提交方式和AJAX方式有什么不同,那么他们的区别就是,传统方式请求的是整个文档,而AJAX提供了更多的选择,我们可以只请求所需的数据。
AJAX为什么要实现异步
我们可以先想象一下form表单提交为什么就没有异步这个功能?原因就是人家都跳转页面了,所以在form表单提交上使用异步这个功能就没有意义了。但对于AJAX则有很大的不同,如果说AJAX不使用异步,那么就必须等待服务器端响应,Javascript才能进行下一步操作,但这样傻傻的等下去肯定是不行的,因此异步也是必然的。
那它又是怎样使用的异步机制呢?也就是所谓的事件监听器,有了这个事件监听器,我们就可以去干其他的事,直到服务器响应,接着这个监听器就会将其指令传递给我们绑定的函数并且执行。
攻入Javascript,究竟什么是AJAX的更多相关文章
- Javascript&Ajax-深入浅出JSONP--解决ajax跨域问题
Javascript&Ajax-深入浅出JSONP--解决ajax跨域问题 原理讲解: 链接地址:http://www.cnblogs.com/chopper/archive/2012/03/ ...
- JavaScript强化教程——jQuery AJAX 实例
什么是 AJAX?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML).简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据 ...
- SQL注入-攻入Apple ID钓鱼网站实录
之前写的一篇利用SQL注入方式攻击钓鱼网站的文章,现在在博客园再分享一下. 下午,朋友发了一条朋友圈,内容大概这样: 大体就是她的iPhone丢了,收到了钓鱼短信,多么熟悉的套路,如下: 还好她比较机 ...
- JavaScript读二进制文件并用ajax传输二进制流
综合网上多个教程,加上自己实践得出的方法,目前能够兼容谷歌.IE11.IE10. htmlbody里的内容,没什么特殊的. <div id="dConfirm"> &l ...
- 利用javascript、php和ajax实现计算器
计算器和ajax部分: <?php /** * Created by PhpStorm. * User: Administrator * Date: 16-9-2 * Time: 上午9:20 ...
- JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求
JSON 介绍 1. JSON: JavaScript Object Notation 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是 ...
- 《JAVASCRIPT高级程序设计》Ajax与Comet
Ajax,是Asynchronous JavaScript + XML的简写,这一技术能向服务器请求额外的技术而无需卸载页面,会带给用户更好的体验.Ajax的核心是XMLHttpRequest对象.为 ...
- JavaScript(第三十二天)【Ajax】
2005年Jesse James Garrett发表了一篇文章,标题为:"Ajax:A new Approach to Web Applications".他在这篇文章里介绍了一种 ...
- 【转】分享JavaScript监听全部Ajax请求事件的方法
若Ajax请求是由jQuery的$.ajax发起的,默认情况下可以使用 jQuery的Global Ajax Event Handlers监听到Ajax事件,然而我遇到的却是用原生JavaScript ...
随机推荐
- AVFoundation(一)---AVAudioPlayer
AVAudioPlayer相当于一个播放器,它支持多种音频格式,而且能够进行进度.音量.播放速度等控制. 下边通过代码来看一下,它的属性和常用方法(具体说明都写在了注释中): //AVAudioPla ...
- Js根据class名替换html标签内容 ,在某标签前后添加内容
function getClass(obj, attr) { var aArray = [];//定义一个新的空数组 var i = 0; var aAll = document.getElement ...
- oracle中to_date详细用法示例(oracle日期格式转换)
这篇文章主要介绍了oracle中to_date详细用法示例,包括期和字符转换函数用法.字符串和时间互转.求某天是星期几.两个日期间的天数.月份差等用法 TO_DATE格式(以时间:2007-11-02 ...
- java 反射的实例
JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 ...
- ThreadLocal类及常用的线程安全类探究
1.ThreadLocal类 ThreadLocal是Thread Local Variable的简称,意思是线程局部变量.作用是为每一个使用该变量的线程都提供一个该变量的副本,使每一个线程都能独立操 ...
- Swift 学习笔记(四)
116.使用可选链式调用代替强制展开 通过在想调用的属性.方法.或下标的可选值(optional value)后面放一个问号(?),可以定义一个可选链.这一点很像在可选值后面放一个叹号(!)来强制展开 ...
- AsyncTask异步加载和HttpURLConnection网络请求数据
//获得网络数据 private void huodeshuju() { //这里是使用线程,已注释掉 /*new Thread(){ public void ...
- 通过js来修改div的style(background,border,。。。。。。。)
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- UVALive 7291 Kinfolk(最近公共祖先)
题目中的描述就很最近公共祖先,再说其实这个题并不难,就是麻烦点(代码其实可以化简的),我写的判定比较多. 方法:求出两者的最近公共祖先lca,在求出两者到lca的距离 分析:给出a和b,如果LCA(a ...
- POJ - 2336 Wireless Network
Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have ...