summary

js模式及应用:

1.代理模式

  代理和本体接口的一致性

  用虚拟代理合并HTTP请求

  缓存代理用于ajax异步请求数据

  缓存代理惰性加载

 

  例子:图片惰性加载的例子

 

2.发布订阅模式

  先订阅再发布:listen与trigger理解

  先发布再订阅:例子,qq离线消息的应用

 

  模块间的通信

 

  例子:用户登陆后,更新UI等一系列操作

 

3.策略模式

 

  例子:form表单验证

 

4.装饰者模式

   

  在不改变A模块的条件下,给A模块添加功能,

  

  例子:各种链式操作。(可为A模块提供before,after链式调用)

 

5.适配器模式

   

  当A和B模块的接口不一致时,提供一个中间件用于转换

 

 

浏览器渲染:

 

1.浏览器渲染: Nodes --> LayoutObject --> PaintLayer --> GraphicsLayer

 

  每一个LayoutObject都有对应的渲染层(PaintLayer)

  

  所谓开启硬件加速(translate3D,will-change属性),就是将渲染层提升为合成层,而合成层有单独的GraphicsLayer,由GPU来渲染

 

2.开闭原则

 

其他:

1.二进制 

  

 -7 << 2 结果为 -28 (-7*4)

 -7 >> 2 结果为 -2   ((-7-1)/4)

 

2.判断li属于第几个ul

<ul>

  <li>1</li>

  <li>2</li>

  <li>3</li>

  <li οnclick="test(this)">4</li>

  <li>5</li>

</ul>

<script>

  function test(elem){

    var loc = [].indexOf.call(elem.parentNode.children, elem)

    console.log(loc)

  }

</script>

 

3.前端压缩图片可用canvas实现

  canvas获取到的图片数据,每4组是一个像素的数据,分别表示rgba(三个色值及透明度)

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值