攻入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 ...
随机推荐
- Android BuildConfig.DEBUG的妙用
在Android开发中,我们使用android.util.Log来打印日志,方便我们的开发调试.但是这些代码不想在发布后执行,我们并不想在软件发布后调试日志被其他开发者看到,现在我的方法是设置一个全局 ...
- vi编辑器常见命令的使用
Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能. ...
- 包(package)
防止文件重名,包体现在文件夹上.包必须建立文件夹. 类名的全称是:包名.类名 javac xx.java 命令编译的时候,不会建立对应的文件夹, 建立包对应的文件夹的命令,要用 javac -d ...
- 自定义开关ToggleButton
package com.example.test;import android.os.Bundle;import android.app.Activity;import android.view.Me ...
- HDU - 1865 1string(大数)
题目链接:http://acm.hust.edu.cn/vjudge/contest/121397#problem/F http://acm.hdu.edu.cn/showproblem.php?pi ...
- play1.x vs play2.x 对比(转)
个人看到对比play1.x和play2.x比较的文章中,写的最深入,最清晰的一个.转自:http://freewind.me/blog/20120728/965.html 为了方便群中的Play初学者 ...
- webapp之路--meta标签format-detection、apple-mobile-web-app-capable
1. format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的,那关于meta的format-detection属性主要是有以下几个设置: meta ...
- 手机号码抽奖系统(JS)
<html><head><title>手机号码抽奖</title><meta http-equiv="Content-Type" ...
- call_grant_sel.sql
set echo offpromptprompt =========================================================================== ...
- ARM汇编指令的一些总结-转
ARM汇编指令的一些总结ARM汇编指令很多,但是真正常用的不是很多,而且需要认真琢磨的又更少了.比较有用的是MOV B BL LDR STR还是通过具体汇编代码来学习吧.@ disable watch ...