jQuery的常见方法和ajax

$(document).ready()和window.onload 的区别

  1. $(document).ready()是等待页面的DOM结构完成后,开始执行括号内的代码,而window.onload则需要等待页面中包括图片在内的所有元素加载完成之后再执行。
  2. window.onload在一个页面中只能有一个,而$(document).ready()可以编写多个,并且都可以得以执行。
  3. $(document).ready()可以简写为$()

$node.html()和$node.text()的区别

$node.html()在获取元素方面对等于原生DOM中的innerHTML()方法,也就是获取node元素中的所有html元素,当在括号内对内容进行设置的时候,可以使用标签,并且这些使用的标签能够得到渲染。
$node.text()在获取元素方面对等于原生DOM中的innerText()方法,它所获取到的只是node元素中的所有文本内容,如果在对text进行设置时使用了标签,这些标签不会被渲染,而是直接以文本的形式存储在node元素中。

$.extend 的作用和用法

  • $.extend(object):为jQuery添加一个方法:

    1
    2
    3
    4
    5
    6
    $.extend({
    sum:function(a,b){return a + b;},
    dif:function(a,b){return a - b;}
    }) // 这两个方法能够直接使用jQuery的调用方式进行调用
    $.sum(2,3) // 5
    $.dif(3,2) // 1
  • $.extend([deep,]target[,object1][,objectN])
    当我们提供两个或福讴歌对象给$.extend(),对象的所有属性都会被添加给target参数

  • 使用中,我们一般讲extend的第一个参数设置为一个空对象,作为目标对象,这样能够保留源对象的值,将返回值赋给新的对象即可
    var obj = $.extend({},obj1,obj2);
    它的工作机制是,如果后一个对象含有一个前一个参数没有,或者前一个参数有,但是值不相同的键值对时,它就会新增或覆盖掉前一个键值对,从而达到深拷贝的目的

jQuery的链式调用

jQuery将点语法引入其中,让自己的每一个方法都具有返回值,这个返回值又能够去调用下一个方法,并再得到返回值,两两之间使用”.”作为连接,称为jQuery的链式调用,这种调用方式减少代码的行数,加快运行速度。

jQuery ajax 中缓存

在jQuery传入的参数中,有一个cache,它的值默认为true(在数据类型为script和jsonp的时候,则默认为false),当这个值为true的时候,就启用了缓存,在下次发送相同的请求时,浏览器就不会再向服务器去发送请求,而是直接从缓存中获取数据。
当cache为false的时候,相当于给每个ajax请求加了一个时间戳,由于这个时间戳的存在,所以每次发送请求的地址都是不相同的,这时候,就不会缓存文件了。
类似传入的数据datastr += '_t=' + new Date().getTime();的形式

jQuery 中 data 函数的作用

  1. 用法
    .data(key,value)
    其中key为一个字符串,是用户存储数据的名称
    value可以是undefined之外的任何类型数据
    也可以使用.data(obj),将键值对的key和value存储其中
  2. 好处
    .data()方法允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险
    我们可以在一个元素上设置不同的值,之后进行获取
    (使用.data()括号内不传入参数则表示获取所有存储的数据)