jQuery相关

1.query源码如何实现选择器的,为什么$取得的对象要设计成数组的形式
2.jQuery怎么实现性能优化
  1. 使用最新版本的jQuery(现在最新的版本是3.2
  2. 使用jQuery中调用原生的选择器,如:$("#div"),$("div"),$(".foo")这样的类选择器在IE8一下会很慢因为没有原生方法getElementByClassName(),最慢是选择器就是伪类选择器($( ':隐藏')``)和属性选择器$('[attribute=value]')
  3. 尽量适应原生的方法
  4. 多做一些缓存,减少这样的重复使用 jQuery('#top').find('p.classA'); jQuery('#top').find('p.classB');

  5. 使用链式的写法,因为jQuery会自动缓存每一步之后的查询查询结果

  6. 多用事件委托,不用所有的时间都要绑定事件,下面的做法是最好的了
     $(文件)。on(“ click ”,“ td ”,function(){
        $(this)。toggleClass(“ click ”);
      });
     
  7. 将CSS的样式合并为一个类插入,合并DOM之后在插入
  8. 尽量使用工具方法,例如$.data(elem[0],key,value);不要使用elem.data(key,value);,的英文这因为elem.data的英文定义在jQuery的对象的原型上面的,而$.data的英文定义在jQuery对象上面的,减少了原型链的查找
    少量尽的新增jQuery对象
  9. 少量尽的新增jQuery对象
  10. 可以考虑使用延时对象
3.jQuery中的window.onload和$(document).ready()的区别

触发的机制不一样这两个事件的出发机制是不一样的,我们先看一下文档的加载过程

  1. 解析HTML结构
  2. 加载外部的样式和脚本
  3. 解析并且执行脚本代码
  4. DOM树简历完成
  5. 加载图片等外部文件
  6. 页面加载完毕

    总的来说$(document).ready()加载完毕只运行到第四步
    window.onload是指的页面加载完毕运行到最后

4.jQuery的ajax使用
5.手写一个jQuery插件
6.手写实现jquery里面的insertAfter
7.jQuery源码的一些问题

阅读jQuery的源码了解的东西

  1. sizzle特别大
  2. 链式调用
  3. 事件冒泡的处理:

    (1)jQuery的中明确禁止一种不断冒泡的事件,即加载事件
    (2)在内部的jQuery通过任何加载事件传递了一个特别的noBubble:true
    (3)所以图片的加载事件不会冒泡到窗口,(可能被误匹配为窗口的加载事件

  4. 对AJAX进行的封装
8. jQuery的自定义事件
$(' #foo ').bind(“ a ”,function(){});
$(' #foo ').trigger(' a ');
9. jQuery的中选择器的实现

jQuery要先进行一个词法分析,比如div#box > .title 会解析为

[
{type :“ TAG ”,value :“ div ” },
{type :“#”,value :“ box ” },
{type :“ > ”,value :“ > ” }
{type :“.”,value :“ title ” }
]
10.jQuery的流程

1.在$或者$.fn上面添加有个方法(也就是插件的名字)

jQuery.fn.myPlugin  =  function(){
     //插件的具体内容放在这里

};

2.闭包里面的这个不是jQuery对象是DOM元素(这个指向调用插件的jQuery对象)

(函数($){
     $。FN。为myplugin  =  函数(){
         //没有必要再作$(这),因为“这”已经是jQuery的对象了
        // $(本)与$($('#元件'))是相同的

        淡入('正常',函数(){
             //在这里这个关键字指向DOM元素
        });                     
    };          
})(jQuery);


$(' #element ').myPlugin();

3.设置默认值和选项并进行扩展

 var settings =  $。extend({
   ' location '' top '' background-color '' blue ' 
},options);

4.书写私有成员,对外开放的成员

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值