• 写页面要注意的事


    1.什么是防抖跟节流?

    防抖和节流本质上是优化高频率执行代码的手段。浏览器上的resize、scroll、keypress、mousemove等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低应用性能,为了优化体验,需要对这类事件进行调用次数的限制,就可以采用防抖debounce和节流throttle的方式来减少调用频率。

    防抖是在一段时间后再执行操作,若在一段时间内被重复触发,则重新计时。

    节流是在一段时间内只运行一次,若在一段时间内重复触发,只有一次生效。

    防抖和节流都可以通过使用setTimeout实现,目的都是,降低回调执行频率,节省计算资源。函数防抖,在一段连续操作结束后,处理回调,利用clearTimeout和 setTimeout实现。函数节流,在一段连续操作中,每一段时间只执行一次,频率较高的事件中使用来提高性能;函数防抖关注一定时间连续触发的事件,只在最后执行一次,而函数节流一段时间内只执行一次。


    2.什么是回流和重绘?

    1.回流

    当增加或删除dom节点,或者给元素修改宽高时,会改变页面布局,那么就会重新构造dom树然 后再次进行渲染,这就是回流。
    2.重绘

    简单来说就是重新绘画,当给一个元素更换颜色、更换背景,虽然不会影响页面布局,但是颜色或背 景变了,就会重新渲染页面,这就是重绘。

    总结

    重绘不会引起dom结构和页面布局的变化,只是样式的变化,有重绘不一定有回流。
    回流则是会引起dom结构和页面布局的变化,有回流就一定有重绘。
    
    • 1
    • 2

    3.什么是内存溢出和泄露?

    一、内存溢出 (OutOfMemory)

    它是指程序在申请内存时,没有足够的内存空间供其使用,抛出OutOfMemory异常。

    比如申请了一个8MB空间,但是当前内存可用空间只有5MB,那么就是内存溢出;

    即:OutOfMemoryError,是指没有空闲内存,垃圾收集器回收后也不能提供更多的内存空间;
    二、内存泄漏 (Memory Leak)

    它是指程序运行后,没有释放所占用的内存空间(程序中有引用没有释放,不能被GC回收),一次内存泄漏可能不会有很大的影响,但长时间的内存泄漏,堆积到一定程度就会产生内存溢出。


  • 相关阅读:
    ARMv8 cache的包含策略inclusive 和 exclusive之间的区别以及Cortex-A55示例详解
    [采访对象征集]内容聚合平台从业人员采访
    Java学习(一)—— 初探Java
    「设计模式」六大原则之六:最小知识原则小结
    计算机毕业设计Java校园内推系统(系统+源码+mysql数据库+lw文档)
    32GB的SD卡在windows上格式化后只有252kb怎么办?
    LLVM系列第二十章:写一个简单的Function Pass
    SpringAOP-----(1)
    周末折腾了两天,踩了无数个坑,终于把win7装成了centos7
    MindSpore社区群组介绍系列之四——WG-Research
  • 原文地址:https://blog.csdn.net/www61621/article/details/127630852