首页 > 代码库 > ajax笔记
ajax笔记
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
一、$.ajax的一般格式
1 $.ajax({ 2 type: ‘POST‘, 3 url: url , 4 data: data , 5 success: success , 6 dataType: dataType 7 });
二、$.ajax的参数描述
url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType 可选。规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。
type(可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)
三、GET 还是 POST?
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
四、$.ajax需要注意的一些地方:
1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。
2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit
jQuery Ajax 事件
Ajax请求会产生若干不同的事件,我们可以订阅这些事件并在其中处理我们的逻辑。在jQuery这里有两种Ajax事件:局部事件 和 全局事件。
局部事件就是在每次的Ajax请求时在方法内定义的,例如:
1 $.ajax({ 2 beforeSend: function(){ 3 // Handle the beforeSend event 4 }, 5 complete: function(){ 6 // Handle the complete event 7 } 8 // ... 9 });
全局事件是每次的Ajax请求都会触发的,它会向DOM中的所有元素广播,在上面 getScript() 示例中加载的脚本就是全局Ajax事件。全局事件可以如下定义:
1 $("#loading").bind("ajaxSend", function(){ 2 $(this).show(); 3 }).bind("ajaxComplete", function(){ 4 $(this).hide(); 5 });
或者:
1 $("#loading").ajaxStart(function(){ 2 $(this).show(); 3 });
我们可以在特定的请求将全局事件禁用,只要设置下 global 选项就可以了:
1 $.ajax({ 2 url: "test.html", 3 global: false,// 禁用全局Ajax事件. 4 // ... 5 });
ajax中data参数的传递
1 function test(map){ 2 3 $.ajax({ 4 type : "POST", 5 url : url, 6 async:true, 7 dataType:‘json‘, 8 data: map, 9 error : function(){}, 10 success : function(data) { 11 ....... 12 } 13 }); 15 } 16 17 function test2(){ 18 var id = $("#id").val(); //通过表单元素id取值。 19 20 var name = $("#name").val(); 21 22 var map = "id="+id+" &name="+name; //参数之间用“&”隔开。这里注意连接符是用:“&” ,而不是“,”今天就放了一个错,用错了符号。 23 test(map); 24 25 }
ajax笔记