攻入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 ...
随机推荐
- 转 EXPDP ORA-39095 ORA-3909 错误
今天帮同事在测试库上导出两张表,第一张表大小为30M,第二章表大小为7G,以下是expdp语法 expdp tranuser/******** parallel=4 content=data_only ...
- 如何查看自己电脑支持OpenGL core版本
1. 起因: 红宝书上的例子在电脑上运行后没有效果,但是怎么也找不到原因,反复对看了书上的源码和代码发现没有任何问题,但是就是没有树上写的效果 2. 思路:查看函数的说明,这里推荐使用docs.gl, ...
- json的学习笔记
json比较简单,所以先从json开始学起. 一 json的名称: json的全称是javascript object notation,中文名称为js 对象表示法. json的定义:json是一种轻 ...
- Android提高第十九篇之"多方向"抽屉--转
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 在android上要实现类似Launch的抽屉效果,大家一定首先会想起SlidingDrawer.Slidin ...
- CodeForces 500 A. New Year Transportation
Description New Year is coming in Line World! In this world, there are n cells numbered by integers ...
- 修改document.domain的注意事项(转)
有时候,需要修改document.domain. 典型的情形:http://a.xxx.com/A.htm 的主页面有一个<iframe src="http://b.xxx.com/B ...
- generic type
http://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html
- 写入cookie后只显示一次的DIV提示框代码
<script type="text/javascript"> function cookiesave(n, v, mins, dn, path){ if(n) { i ...
- 1381: Munching(BFS)
Description Bessie loves her grass and loves to hurry to the barn for her evening milking session. S ...
- IE6 7 父级元素的overflow:hidden 是包不住子级的relative
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...