前端js嵌套遍历优化_为什么你的网站那么慢?本篇将带你掌握前端HTML5性能优化的技巧...

news/2024/5/19 10:54:46/文章来源:https://blog.csdn.net/weixin_42522148/article/details/112331962

点击上方 关注订阅黑码教主获取更多精彩内容

性能之前端篇

循环优化

c980732cb42a1bf8f3a054f6fff0c9a5.png

在多重嵌套循环的程序上,如果能分出出多个独立循环也比嵌套在一个循环体内来的更有益。

优化循环的3种方式:减少每次迭代的开销、减少迭代的次数或者重新设计应用程序。

在测试的时候仅可能模拟真实环境:如低端机器和低速网络。

a8a78774276af3d1d106c7584b79b79f.png

Ajax优化

对于连续页面之间的差别很小的应用而言,使用Ajax技术能带来显著的改善。

badbbf15d09707184af6ddb3990e09f4.png

减少重绘

在HTML页面完成展现之后,动态改变页面元素或调整CSS样式都会引起浏览器重绘,性能的损耗直接取决于动态改变的范围:如果只是改变一个元素的颜色之类的信息则只会重绘该元素;而如果是增删节点或调整节点位置则会引起其兄弟节点也一并重绘。

减少重绘并不是说不要重绘,而是要注意重绘范围:

  1. 改动的DOM元素越深则影响越小,所以尽量深入节点改动;
  2. 对某些DOM样式有多重变动尽量合并到一起修改;

以改变一个标签的背景色、宽度和颜色为例。

传统的代码  

以上会执行3次重绘,而通过CSS代替javascript多次执行则只进行一次重绘。

 CSS优化的代码 

避免脚本阻塞加载

当浏览器在解析常规的script标签时,它需要等待script下载完毕,再解析执行,而后续的HTML代码只能等待。CSS文件引入要放在头部,因为这是HTML渲染必备元素。

a57558689860d5088c64b734924d494e.png

为了避免阻塞加载,应把脚本放到文档的末尾,而CSS是需要放在头部的!

......

避免节点深层级嵌套

深层级嵌套的节点在初始化构建时往往需要更多的内存占用,并且在遍历节点时也会更慢些,这与浏览器构建DOM文档的机制有关。浏览器会把整个HTML文档的结构存储为DOM“树”结构。当文档节点的嵌套层次越深,构建的DOM树层次也会越深。

如下代码,完全能够去掉

或其中一个标签。
嵌套

页面缓存

通常不设置缓存的情况下,每次刷新页面都会重新读取服务器的文件,而如果设置缓存之后,所有文件都可以从本地取得,这样明显极大提高了页面效率。

我们可以通过设置页面头的expires来定义页面过期时间,将过期时间定久一点就达到了“永久”缓存。

当然,如果你的项目代码有变更,因为客户端缓存了文件就得不到最新的文件,势必造成显示错误。基于这个问题的解决方案就是给链接文件加一个时间戳,如果时间戳有变化,浏览器会认为是新文件,就会向服务器请求最新文件。

//如果是JSP,可以用EL表达式来取时间戳信息,这样管理更加方便//或者这样的写法更优秀:

压缩合并文件

所有涉及到请求数据的文件尽量做压缩,比如Javascript文件、css文件及图片文件,特别是图片文件,如果没有高清晰要求,完全可以压缩后再使用。

数量少体积大的文件要比数量多体积小的文件加载速度快,所以有时候可以考虑将多个js文件、多个css文件合并在一起。

除此之外减少HTML文档大小还可以采取下面几种方法:

  1. 删掉HTM文档对执行结果无影响的空格空行和注释
  2. 避免Table布局
  3. 使用HTML5 ### HTML+CSS3+Javascript各司其职 让三元素各司其职才能做出高性能的网页:HTML是页面之本也是内容之源,有了它就能跟CSS和Javascript交互;CSS3可以说是展现大师,而且日渐强大的CSS能代替Javascript做很多动态的事情如渐变、移动等动态效果;Javascript是动态数据之王,旧浏览器依靠js来完成动态效果展现,但现在的CSS也能完成js的工作,所以尽量将工作交给css,这样会获得更好的性能。(这个说得有点大)

图像合并实现CSS Sprites

图像合并其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS 的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。

一个页面要用到多个图标,完全可以将多个图标合并成一个图,然后只需要发一次图片请求,通过css定位分割图标即可。

避免使用Iframe

使用iframe并不会增加同域名下的并行下载数,浏览器对同域名的连接总是共享浏览器级别的连接池,在页面加载过程中iframe元素还会阻塞父文档onload事件的触发。并且iframe是html标签中最消耗资源的标签,它的开销比DIV、SCRIPT、STYLE等DOM高1~2个数量级。

避免onload事件被阻塞,可使用JavaScript动态的加载iframe元素或动态设置iframe的src属性(但其仅在高级浏览器IE9及以上有效)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_752252.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

园林景观cad_如何不花一分钱自学CAD?这几个网站收好!海量免费教程看不完

不少小伙伴都想趁闲暇时间自学点技能提升自己,这几年CAD是个很热门的软件,不少人都想自学CAD,但是一看到外边培训班的报名费,就被吓退了。其实,现在网络这么发达,有什么想学的上网搜一搜就好啦!…

查看nginx运行状态_部署Nginx网站服务实现访问状态统计以及访问控制功能

Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求。Nginx的安装文件可以从官方网站http://www.nginx.org/下载,下面以Nginx1.12版本为例&#…

mysql msvcr_「msvcr120.dll」MySQL免安装版,遇到MSVCR120.dll文件丢失错误的解决方案 - seo实验室...

msvcr120.dll在进行mysql zip版本的安装时,遇到上图的错误,在网上找了相关的文件拷贝到相应目录下,但还是不行。后来终于找到解决方法:下载 VC redist packages for x64,下载完成,点击运行即可。相关阅读最…

代码命名网站

链接:http://unbug.github.io/codelf/ 相关说明及插件:https://github.com/unbug/codelf 有一些小伙伴,在进行变量命名的时候,对于自己熟悉的英文,可能还会用英文命名一下,如果需要命名的部分不会用英文表…

网站不让复制文字??教你破解复制+白嫖下载百度等各种文档

前阵子需要写篇 xxxx 感想的文章,当然,这种一般都是学校要求写的,作为高中作文在及格边缘徘徊的“好学生”,写是不可能写的了,只能拿出我的 从 CV 大法,去各大网站搜索白嫖别人的作文,然而白嫖的…

10大免费的白嫖网站

本次给大家分享下 pk 哥常用的 10个白嫖网站。 万能命令 https://wanneng.run/cn/在你浏览任意网页时,在网址前面输入这个万能命令 wn.run/ 就会展示出用于该网页的各种附加在线工具,方便快捷,一行命令搞定! 收录了很多高质量的…

程序员必备网站之一:No Design

昨天在逛 Hacker News 的时候,我偶然发现个宝藏网站:No Design。 地址:https://nodesign.dev 网站上收集了许多十分便利的 UI 设计工具与设计资源,看完后我内心激动不已,这网站对于那些不太懂设计的开发者来说&#x…

自学编程精品网站。

我敢保证,它们适合 所有 想要自学编程的同学。并且我相信,对于有一定经验的程序员,这些网站也基本都用过。 我将这些网站大致分为了几类: 学习类 freeCodecamp https://chinese.freecodecamp.org/ 一个适合初学者入门的免费实战…

nginx网站服务(访问状态统计、虚拟主机应用、访问控制设置)

nginx网站服务(访问状态统计、虚拟主机应用、访问控制设置)一:源码安装nginx1.1:安装环境所需的软件包1.2:创建运行用户、组1.3:解压软件包、编译安装1.4:优化执行路径1.5:编写状态管…

jar包搜索_为啥mvnrepository网站jar包,下载不下来

我们团队有维护一个很老的大数据脚本项目,此项目写一些spark任务,然后打包上传到大数据平台,跑一些任务。最近安全团队,爆出此项目有一些jar,有安全风险,需要进行jar的升级。pull此项目的时候,发…

页面布局_如何通过网站页面布局优化提升seo关键词排名?

点击蓝字|关注我们大多数做SEO的人不会忽视网站的页面优化。很多人把注意力集中在网站主页的页面优化上。网站页面优化也是网站内部优化的第一步。通过页面内容的布局调整和设计,可以创建一个用户喜欢并有利于搜索引擎抓取和识别的页面,从而提…

[python网站开发] 一.Django入门知识及创建第一个网站

转自: https://blog.csdn.net/Eastmount/article/details/73735279 随着Python应用越来越广泛,学习Python相关知识越来越多的人选择。最新研究,Python已成为美国top高校最受欢迎的语言,同时国内用Python开发的网站越来越多&#…

读论文的好网站

发现了一个更好的网站 Browse the State-of-the-Art in Machine Learning 也是按主题划分的,各个领域都有,大热的CV,NLP到小众一些的Graphs,时间序列等都有涉及。 这个网站收的论文更多更全,也很新,CVPR2…

SharePoint 2010新建站点不能登录解决方法

近期在使用SharePoint 2010,今天我在一台新服务器上(单服务器,无域环境),新建了一个SharePoint 2010的站点(先创建Web应用程序,再创建网站集),发现,在登录这个…

博客优化 搜索SEO优化 提高搜索量

csdn博客文章SEO优化提高搜索量,博客优化方法,搜索优化增加博客文章阅读量生成百度快照 。博客文章主要是会推送到百度,百度爬虫生成网页快照,这样的话百度搜索引擎会在搜索结果根据权重排名展示。 博客文章标题 文章的标题简短,包含关键词不超过30个字,…

网站数据库断连重启服务器,重启服务器上的数据库服务器

重启服务器上的数据库服务器 内容精选换一换云数据库RDS服务上的MySQL在使用上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1。您可以通过导出SQL语句的方式将数据库备份到弹性云服务器上。弹性云服务器不限制存放哪些数据,但是数…

旅游网站的主页代码_网络营销知识_关注企业优化教程,增加网站优化胜算

发布时间:2020-12-07 05:12:11企业网站查找优化教程的中心点在于做方针关键词,做方针关键词的站外要素很大程度上是发外链即锚文本建造,想要获得搜索引擎优化优化排名的着陆页很大程度上是主页。运用主页做企业网站方针关键词排名,就是中心的…

为什么手机网速太慢_建设手机端公司网站需要注意哪些问题

现在是一个移动互联网时代,移动端几乎已经包含了人们的衣食住行。因此现在很多企业都开始建设手机网站。但是很多时候建设出来的手机网站并没有达到要求,导致资源浪费。下面我们就来看看手机网站建设需要注意哪些问题。一、对于手机网站而言,…

将网站上的web字体base,woff2转换成.ttf系统字体

一.场景1:将woff2转换成.ttf. (1)f12调用浏览器控制面板查看network,一定是选中font请求其他过滤掉 (2)查看左侧请求浏览右侧preview你会看到响应的字体预览 (3)确认是目标字体后把当…

自适应页面网站制作

找到工入职后,老板给的第一个任务就是自适应网站的制作。我是个菜鸡,虽然上学有做过页面,但大家懂得。 具体总结我会再写一篇文章来分析的。 今天对一些自适应页面的技巧分享一下。 1.web端 2.移动端效果,750px内 这样的排布&am…