作者:丨火云邪神丨 | 来源:互联网 | 2023-09-01 16:31
当Dom的几何属性发生变化时,比如Dom的宽高,或者颜色,position,浏览器需要重新计算元素的几何属性,并且重新构建渲染树,这个过程称之为重绘重排。当try块发生错误时,程序
大型前端需要学习哪里的技能1、web前端的各种框架;
2、当下流行的小程序体系结构
3、web前端各种技术堆栈
4、坚持学习的心情
点这里XZ地址:拉勾大前端高薪训练
牵引大户高薪训练营实战工程化2.1第一阶段:库/框架选型
2.2第二阶段:工具建设、管理
2.3第三阶段: JS/CSS模块化开发
它是软件工程中的重要思想,是复杂系统开发和维护的基础,这在前端开发中也是如此。 在解决了基本的开发效率运营效率问题之后,前端团队开始思考维护效率。 模块化是目前前端最流行的分治手段。 (ps:以上的排名不限)。
很多人认为模块化开发的工程意义是复用,其实模块化开发最大的价值应该是分治。 无论将来是否复用代码,都有充分的理由将其拆分为模块。
JS的模块化方式很多,AMD、CMD、UMD、CommonJS、ES6 Module等对应的框架和工具也很多。
CSS模块化开发基本上是在Less、Sass、Stylus等预处理程序的import、mixin特性支持下实现的。
通过优化前端性能,减少“页面重排”(Reflows )和“重绘”(Repaints )
什么是位错和重画:
当浏览器下载HTMl、CSS和JS时,将生成两个树: DOM树和渲染树。 如果Dom的几何属性发生变化,例如Dom的宽度、高度、颜色和指向,浏览器将需要重新计算元素的几何属性并重建渲染树。 这个过程称为重画重定位。
元素的布局、内容的添加和删除以及浏览器窗口的大小的调整会导致重排,而更改字体颜色和背景颜色则会导致重绘。
对于以下代码操作,大多数现代浏览器都经过了优化(针对一次重新排版进行了优化)。
//修正前
varel=document.getelementbyid (“div”);
el.style.borderLeft=“1px”;//一次重新排版
el.style.borderRight=“2px”; //再重新排版一次
El.style.padding=" 5px "//还有一次再版
//修正后
varel=document.getelementbyid (“div”);
El.style.csstext=“border-left :1 px; border-right:2px; padding:5px;//一次重新排版
在多个操作中,还可以通过以下三种方式减少重新排版和重绘的次数:
Dom先隐藏,操作后显示两次重新配置(临时显示: none );
document.createdocumentfragment ()创建文档碎片处理,操作后将其添加到页面并重新定位一次;
var new DOM=old DOM.clonenode (true )创建DOM副本并修改副本,然后oldDOM.parentNode.replaceChild
(newDOM,oldDOM )覆盖原来的DOM进行2转位
对于动画元素,请使用绝对位置使其不在文档流中。 这样,更改位置不会重排页面上的其他元素
有关优化DOM的详细信息以及浏览器页面**“重排”(Reflows )和“重绘”(Repaints ) *的概念和优化,请参阅:天生慢的DOM如何进行优化? 花10分钟读的话,你会学到很多。
尽量不要改变作用域链
使用with
try catch
我所知道的用Javascript改变作用域链的方法只有两种:1)使用with表达式2 )捕获异常的try catch
但是,with是一个影响每个人都深恶痛绝的性能的表达式,因为我们可以完全通过使用局部变量来替换它。 (with原理明显会影响性能,因为在更改作用域链的同时,需要存储大量信息以保证在当前操作完成后恢复之前的作用域链。 ) ) ) ) ) ) ) ) ) )。
try catch的catch子句也可以更改作用域链。 如果try块出现错误,程序将自动进入catch块,并将异常对象推送到作用域链开头的可变对象。 也就是说,在catch块中,函数的所有局部变量都已经位于第二个范围链对象中,但catch子句执行完成后,范围链将恢复为其原始状态。 必须最小化catch子句以保证代码的性能。 如果您知道错误的概念很高,则应该尽量纠正错误,而不是使用try catch。
最后一次
虽说现代浏览器都做得很好,但rddd认为这是自己对代码质量的追求。 另外,如果不考虑一点或两点的话,可能对性能没有什么影响,但是从多个点进行优化的话,性能有可能会飞跃性地提高
希望大家能掌握Javascript总结的这些提高性能的知识点。
大型高薪训练营怎么样?学员评价:
我觉得学习这门课以后,在技术上真的取得了很多提高,感谢老师们的教导
HTML、CSS、Javascript以及Vue.js和React都不缺一个。 也经历过跨平台PC、移动端和小程序。 看起来像实战派。
经过深入的探讨,他发现自己对这些技术了解并不深,对许多基础技术和原理了如指掌,甚至连最基本的Javascript作用域和闭包都不清楚。
因此,要想成为大型制造商的高薪邀请,首先要清楚大型制造商想要什么样的人才。 我分析了至少100家企业对高级前端工程师的需求,并总结了学习清单。 其中有