JS原生Background Tasks 一.window.requestIdleCallback1.作用:这个方法将会在浏览器的空闲时间调用函数排队。这样可以使操作者在主事件循环上执行后台和低优先级工作,而不会影响延迟关键事件,比如动画和输入响应,函数一般会按照先进先执行的顺序进行调用,但是如果设置了timeout(超时执行时间),将会导致为了在超时之前执行相应的函数操作而打乱执行顺序。 2.使用方法window.requestIdle 2021-12-24 Javascript
documentFragment深入理解 先搬一段官方的描述:DocumentFragment 表示一个没有父级文件的最小文档对象。它被当做一个轻量版的 Document 使用,用于存储已排好版的或尚未打理好格式的XML片段。最大的区别是因为DocumentFragment不是真实DOM树的一部分,它的变化不会引起DOM树的重新渲染的操作(reflow) ,且不会导致性能等问题。DocumentFragment 接口表示文档的一部分(或一 2021-12-24 Javascript
Js对象判空与对象是否包含某个属性 对象判空1.将对象转换为JSON字符串,判断是否为‘{}’ 1var b =data=> (JSON.stringify(data) == "{}"); 2.for in循环对象 1234var b =data=> {for(var key in data){return false;}return true 2021-12-24 Javascript
V8中的JavaScript的内存管理与垃圾回收 一.内存的生命周期无论任何语言,内存生命周期大体一致,会分为:分配内存,使用内存,销毁内存三个阶段 1.分配1.1静态内存分配 1.2动态内存分配 区别:静态内存分配: 数据大小在编译的时候必须是已知的 在编译时执行 分配给栈 先进后出 2.使用读写基本变量或对象的属性、传参等操作,都涉及到了内存的使用。 3.释放对于不再使用的内存,应当及时释放。 二.V8的内存结构正在运行的程序由某 2021-12-24 Javascript
JavaScript常见的内存泄漏 一.什么是内存泄漏当应用程序不再需要的内存,由于某种原因未返回给操作系统或者空闲内存,这将会导致程序变慢、卡顿、高延迟 二.内存泄漏的主要原因JavaScript内存泄漏的主要原因在于一些不再需要的引用(Unwanted References)。 所谓的Unwanted References指的是:有一些内存,其实开发人员已经不再需要了,但是由于某种原因,这些内存仍然被标记并保留在活动根目录树中。 2021-12-24 Javascript
Vue Router两种路由模式 hash模式在hash模式下,本质上是通过修改window.location.href实现的。前端路由的改变依托于**#锚点,而锚点后边的值我们可以通过修改window.location.hash**的值来修改,每一次hash值的变化都会导致触发hashchange这个事件,很重要的一点就是,这样修改页面不会刷新,不会导致浏览器向后端发送请求 12345window.onhashchange = 2021-12-24 Vue
Vue中Array的变化侦测 前言:之前介绍了Vue中Object的变化侦测,Array中的变化侦测和Object中变化侦测还是有一定的不同的,这一篇就来学习一下。 1.Object与Array变化侦测的不同Array.push()方法实际上并不会调用getter/setter,并且在ES6之前JS并没有元编程的能力,无法拦截原型方法,而每一个数组实例调用push等方法都是调用的原型上的方法,所以为了追踪变化我们必须使用一个 2021-12-24 Vue
Vue跳转路由和页面时的传参 前言:这个问题是我之前做的一个移动端练手小demo时出现的问题,需求是最后点击另一个路由上的提交按钮时,将之前路由用户选择的数据提交给后台,我想不到别的方法,最终在这么一个小demo中使用了vuex,下面是我看其他博客总结的一些方法 1.路由传值12345678// 字符串router.push('home')// 对象router.push({ path: 2021-12-24 Vue
setInterval和setTimeout的坑 之前使用setInterval进行一个前端轮询的操作,结果把网站卡崩了,来总结一下setInterval和setTimeout的坑 一.setInterval的坑 setInterval会无视代码错误。就算代码中遇到了错误,它还是会一直循环下去,如果代码中有错误代码,setInterval就会导致这个错误被隐藏123456let count = 1;setInterval(function () 2021-12-24 Javascript
Vue中Object的变化侦测 前言:最近在阅读深入浅出vue这本书,对Vue的响应式原理中变化侦测有了进一步的理解。 一.什么是变化侦测我们在解释一个东西之前必须先搞清楚这个东西到底是什么,页面渲染的时候需要与数据有所交互,而当用户操作的时候这些数据是会发生变化的,当数据变化的同时为了用户和程序的良好交流,我们必须立即将改变的数据渲染到页面上,而Vue这个框架就很好的做到了这一点。 二.如何侦测Object变化1.数据劫持2 2021-06-06 Vue