网站代码优化

news/2024/5/2 15:57:16/文章来源:https://blog.csdn.net/weixin_33998125/article/details/89439312

将面试整理的网站优化资料记一记,针对移动端的代码说的。

html

1: 标签嵌套层级不要太深,标签尽量简洁化.如懒加载后将data属性去除

2: DNS预先处理 dns-prefetch,如果一个页面有多个不同地址的引用,则DNS预解析很有用。页面预先处理link标签的prefetch

3: 大量图片的懒加载策略,以及一些元素利用ajaxonload后实行延迟加载

4: 对一些js的异步加载

css

1: 嵌套层级不要太深,一般三层最多了。这个主要还是看团队项目结构,命名规范对这个有很大影响,互有取舍,是命名长一点不会有重复还是命名方便一点嵌套深一点

2: css解析从右向左,所以最右边的应该是相对少一点的,比如.on.li_lick 就比.li_click.on要好(如果.on很多的话)

3: html用了base64img的话,并不会缓存起来,可以将这个base64的图片放在css文件里,css会缓存,图片就缓存起来了

4: 尽量不用后代元素选择器,最右边的一层不要是标签,尤其是像div这种非常常用的标签

5: 多使用css的继承,而不是每一次都书写时都全部重写一遍。写多个css属性时,能连在一起写的就连在一起写。如:background: #fff url() center center no-repeat

javascript

以一个for循环来构建DOM文档举例(使用jquery

// var lis = document.getElementsByTagName("li")
var lis = [1, "2", "3", "4"];
var ulObj = $("ul");
var lisLength = lis.length;
var html = "";
for (var i = 0; i < lisLength; i++) {if (lis[i] === 1) {html += '<li class="number">' + lis[i] + '</li>';} else {html += '<li>' + lis[i] + '</li>';}
}
ulObj.html(html); 

01. 缓存变量。$("ul") 使用jquery这种语句记得将其存在变量里,每一句$()都是非常重的函数,能尽量少用就少用。

02. 使用诸如getElementsByTagName这类LIVE类型的collections时,更要注意对其length的缓存

03. var html = ""。 赋值时,用字面量的方式

04. for 循环。实践证明,递减循环比递增循环要快那么一点点。

05. 对于大型的for循环,可能导致执行时页面卡住,可以考虑使用数组分块技术将循环分割成多个循环一部分一部分的执行

06. for循环里的条件判断lis.length一定要缓存在变量里,不然每一次都要去查询一次长度。

07. 构建DOM结构。一般有三种方式:
①: 使用节点关系createElementappendChild这些去构建生成节点关系。
②:使用文档片段documentFragment的方式。
③:直接用字符串拼接:这个又分为两种,直接+号拼接和数组join拼接。第三种速度效率最高。而第三种里面在移动端里使用+号比数组快很多,在PC端得看浏览器,不同浏览器不同版本对这两种方式的优化不同。

08. 插入到DOM文档:使用innerHTML的方式比appendChild要效率高。综上,移动端还是使用+号拼接字符串最后使用innerHTML的方式

09. 插入到DOM中时,一定要将插入结果放在变量里,在for循环结束后插入,千万不能在for循环中执行插入操作,会造成大量的重绘重排。尽量减少对DOM的操作

10. 这个例子需要动态添加,动态删除,每个li标签有click事件。如果每次插入到DOM后给li添加click事件,那么删除时就要清除注册在li上的click事件。非常麻烦。所以采用事件委托的机制,将事件绑定在ul上,通过target属来判断

11. 条件判断: =======要进行类型转换比较,多了一个步骤,效率低


12. 使用直接函数,而不是与之等同的函数,比如$.ajax(),其他$.get()等最终都是调用$.ajax(),多余的步骤多余的调用必然导致效率相对低

13. 选择器: 使用原生的选择器一定是最快的getElementById(),getElementsByTagName()这些,因为是用编译语言写好的方法。所以jquery$("li")标签选取器的效率是很高的,所以$("li .my_li")这样写比$(".my_li")效率要高

14. 善用事件委托:如果有许多类似的结构要绑定事件,都利用事件冒泡的机制,在上层元素上绑定事件

15. 将一些多条件判断赋值语句用数组来做,比如:

   switch(a) {case 0:result = "一";break;case 1:result = "二";break;}

改成:

var arr = ["零", "一"];
result = arr[a] 

16. 对于有复杂动画的模块,尽量用定位使其脱离文档流。利用css3实现的动画,调用一下translate3d(0, 0, 0)或其他的的3d变换,就会调起硬件加速,这个页面其他动画就都会有硬件加速的效果了。要考虑低端机型的话慎用

17. 函数尽量简单,少用闭包,嵌套的对象成员也会影响性能,总之结构尽量简单,能少一层就少一层

18. 对于非常频繁调用的函数,如scroll触发的函数,可以考虑使用函数节流,debouncethrottle

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

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

相关文章

Ubuntu下Apache+php+mysql网站架设详解

目录 1 基础2 安装2.1 安装LAMP2.2 图形化管理软件&#xff08;可选&#xff09;2.2.1 安装webmin2.2.2 安装phpmyadmin3 配置文件路径3.1 常用命令3.2 配置apache3.2.1 Apache模块3.3 配置PHP53.4 配置MySQL3.4.1 MySQL常用命令3.4.2 配置文件&#xff08;新手、无特殊要求勿动…

美国政府所有网站开始使用 HTTPS 加密

作为维护安全和隐私的一项新举措&#xff0c;美国政府宣布了一项计划&#xff0c;使HTTPS成为其公共网站联邦安全标准。其目标是到2016年12月31日&#xff0c;让美国政府所有网站都使用HTTPS加密。白宫甚至在Github上张 贴这项政策的最终版本&#xff0c;让公众自己来进行比较。…

网站防止恶意登陆或防盗链的使用

使用场景&#xff1a;明明引用了一个正确的图片地址&#xff0c;但显示出来的却是一个红叉或写有“此图片仅限于网站用户交流沟通使用”之类的“假图片”。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错&#xff0c;如果确认地址没错的…

网站就必须用响应式布局吗?MVC视图展现模式之移动布局

本文先引入给读者一个自己研究的机会&#xff0c;下次深入说明一下&#xff1a; 废话不多说&#xff0c;直接上图 新建一个mvc的项目 在视图里面添加一个移动端视图 正常访问一下 Bootstrap自带的响应式的方式&#xff08;页面代码并没有改变&#xff09; 我们来模拟一下移动端…

重庆文化执法部门清理27个违法音乐网站

【TechWeb】3月20日消息&#xff0c;据“扫黄打非”微信号消息&#xff0c;2018年12月&#xff0c;重庆市文化市场行政执法总队接网友举报称&#xff0c;有音乐网站提供免费听歌服务&#xff0c;上传了大量含有违背社会公德内容的歌曲&#xff0c;随即展开立案调查。 经查&…

2016年10大SEO趋势预测

针对很多人所说的老SEO已经死亡&#xff0c;转型&#xff0c;还是提倡新SEO&#xff0c;这都不是需要格外注意的东西&#xff0c;做好自己的能力&#xff0c;视野提升&#xff0c;储备下快速学习的能力。ASO也好&#xff0c;社交SEO也好或者是传统SEO也好&#xff0c;最重要的是…

Vue+thinkJs博客网站(一)之vue多页面应用的webpack3配置

一.项目简介 本项目使用vue作为前端框架&#xff0c;thinkJs作为后端框架&#xff0c;构建个人博客网站&#xff0c;页面分为博客展示和后台管理&#xff0c;主要目的是学习使用thinkJs。现在只完成了主要的博客增删改功能&#xff0c;发现webpack的配置遇到了一些坑&#xff0…

LAMP网站平台的构建和PHP应用部署

LAMP是目前最成熟的一种企业网站应用模式&#xff0c;可提供动态web站点应用及开发环境构成组件&#xff1a;Linux 、Apache、MySQL、PHP/Perl/Python公司需求&#xff1a;搭建一台可以支持动态web站点 的网站&#xff0c;并且可以支持PHP语言开发的环境&#xff0c;通过PHP部署…

说说我平时用的几个学习网站(网址)吧,希望可以给你帮助

为什么80%的码农都做不了架构师&#xff1f;>>> 1.颜色表及html代码&#xff0c;平时用用到色彩可以查下&#xff1a;颜色查询 2.在线代码着色高亮&#xff0c;这个特别好用&#xff0c;我平时在云笔记上都用它&#xff0c;记得复制的时候全部都复制进去&#xff…

阿里云系列——3.网站备案初步核审(详细步骤)---2015-11.12

网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 流程图&#xff1a; 1.注册账号 进&#xff1a;https://beian.gein.cn/account/login.htm 注册一个账号&#xff0c;然后会收到邮件 立即备案 如何办理首次备案&#xff1f;如果您从未办理过备案&am…

什么样的网站才能让搜索引擎喜欢?

要做好一个网站&#xff0c;更多的重心而不是网站有多么好&#xff0c;而是网站的运营、网站的seo优化、网站的推广有没有做好。对于一个网站的发展来讲&#xff0c;怎么做好这一系列的工作才是最为重要的。搜索引擎都喜欢什么样的网站&#xff1f;怎么样做才能让搜索引擎爱上你…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能&#xff0c;通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

centos下linux运行asp网站搭建配置-mono+nginx

一、首先安装一些需要的软件包 1、 首先更新CentOS上的软件包&#xff1a;yum –y update。 2、 安装一些需要的库&#xff1a; yum -y install gcc gcc-c bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel l…

站长基础知识,网站被镜像是好是坏,被恶意镜像怎么处理

网站被镜像一直以来&#xff0c;感觉这个问题应该不会出现在自己的网站&#xff0c;因为只是个小站应该不会被镜像吧&#xff0c;然而并不是这样&#xff0c;通过后台加速和服务器后台流量统计发现&#xff0c;网站流量非常异常&#xff08;有时候pv上万&#xff09;&#xff0…

超酷的测速网站Ookla SPEEDTEST

测试网速的工具、网站估计不少&#xff0c;在百度一搜都能搜出一大堆&#xff0c;下面介绍一个国外测试网速的网站&#xff0c;用户体验相当棒&#xff0c;感觉酷毙了&#xff0c;那些其它测试网速的网站跟这个比起来&#xff0c;简直弱毙了。这个网速测试网站就是&#xff1a;…

小虾视频网站广告屏蔽器 V 5.0

本软件用于屏蔽一些视频网站的广告&#xff0c;也具备屏蔽一些恶意网站的作用&#xff01;如过你发现在电脑正常的情况下有些网友打开开&#xff0c;那是因为屏蔽的原因&#xff0c;只要单击一键还原广告就OK了&#xff01;~ 打开软件后不要老是点击不然容易出错&#xff01;要…

50-100台中小规模网站集群搭建实战项目(超实用企业集群)

【老男孩运维班期中搭建50-100台规模的集群实战】学员入学第8-12周&#xff0c;必须完成的中小型网站集群实战&#xff0c;老男孩linuxpython高薪运维班全员项目实战1、项目规划&#xff1a;搭建50-100台规模的集群实战设计2、开启7-8台虚拟机&#xff08;kickstart无人值守装机…

知识点详解的一些网站搜罗

2019独角兽企业重金招聘Python工程师标准>>> NSTimer 使用 绝对超详细&#xff08;2&#xff09;:http://blog.csdn.net/davidsph/article/details/7899731 iOS 随机数(Fixed)&#xff1a;http://blog.csdn.net/ouyangtianhan/article/details/17464149 应用程序挂…

常见的网站服务器架构有哪些(转载)

常见的网站服务器架构有哪些&#xff08;转载&#xff09;简单说下以下的架构都是在假设已经优化过linux内核的情况下进行初级篇&#xff1a;&#xff08;单机模式&#xff09;假设配置&#xff1a;&#xff08;Dual core 2.0GHz,4GB ram,SSD&#xff09;基础框架&#xff1a;a…

版权黑洞:视觉中国关闭网站整改 全景网络已暂停服务

【TechWeb】 一天四次上热搜&#xff0c;致歉&#xff0c;视觉中国这次是真的触犯了众怒。 北京时间4月9日周二晚人类首张黑洞照片公布之后不久 &#xff0c;有网友发现视觉中国将这张图片列为“版权所有”的编辑图片&#xff0c;称“此图片是编辑图片&#xff0c;如用于商业用…