1. jQuery Ajax -serialize():序列化表单 把name和value 序列成 a=1&b=2&c=3;
2.jQuery defferred 对象: <1.5.0的 $.ajax()返回的是XHR对象 ; >1.5.0的返回的是 defferred对象,可以进行链式操作
链式操作:
$.ajax("test.html")
.done(function(){ alert("哈哈,成功了!");} )
.fail(function(){ alert("出错啦!"); } )
.done(function(){ alert("第二个回调函数!");} );
1.同一个操作执行多个回调函数。
2.为多个操作指定一个回调函数
$.when($.ajax("test1.html"), $.ajax("test2.html"))
.done(function(){ alert("哈哈,成功了!"); })
.fail(function(){ alert("出错啦!"); });
3.任何一个操作都可以使用 defferred的任何方法。
$.when()
3.选择器:
$(' label + input '): 紧跟在label后面的input ;
$(' form~input '): 与form同级的input;
$(' input:not(:checked) '):未选中的input;
$('tr:even ') :表格奇数行 ; $(' tr:odd ')
$('tr:gt(0)'): 索引值大于0的行; $(' tr:lt(2) ')
$(':header'),选中所有的标题;
$(':animated):正在执行动画效果的元素;
$('div:contains(' john ') '): 内容包含john的div;
:empty :focus :has() :parent :hidden :visible
$(input[atturibute=value])
:input :text :password :radio :checkout :submit :imgage :reset :button :file :enabled :disabled :checked :selected
4.ajax缓存
ajax在发送的数据成功后,会把请求的ul和数据缓存,当下一次ajax发送相同的请求是,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验,不足:当通过ajax对后台做一些更改的时候,虽然后台数据已经变化,但是页面缓存并没改变,对于相同的URL,Ajax提交过去以后,浏览器还只是简单的从缓存中拿数据。
ajax禁止缓存的方案:.url里加随机数,时间戳; ur=‘check.js?num=’+Match.random(); url=check.js?date=’+'&'+new Date().getTime() jq 1.5.2版本 以后自动给 url 加时间戳
jquery中提供一个防止ajax缓存的方法 cache:false