爱创课堂每日一题第二十天- 谈谈性能优化问题?

代码层面:避免使用css表达式,避免使用高级选择器,通配选择器。
缓存利用:缓存Ajax,使用CDN,使用外部js和css文件以便缓存,添加Expires头,服务端配置Etag,减少DNS查找等
请求数量:合并样式和脚本,使用css图片精灵,初始首屏之外的图片资源按需加载,静态资源延迟加载。
请求带宽:压缩文件,开启GZIP,
代码层面的优化
用hash-table来优化查找
少用全局变量
用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能
用setTimeout来避免页面失去响应
缓存DOM节点查找的结果
避免使用CSS Expression
避免全局查询
避免使用with(with会创建自己的作用域,会增加作用域链长度)
多个变量声明合并
避免图片和iFrame等的空Src。空Src会重新加载当前页面,影响速度和效率
尽量避免写在HTML标签中写Style属性

时间: 2024-10-24 22:31:46

爱创课堂每日一题第二十天- 谈谈性能优化问题?的相关文章

爱创课堂每日一题第十二天 XSS原理及防范?

Xss(cross-site scripting)攻击指的是攻击者往Web页面里插入恶意 html标签或者javascript代码.比如:攻击者在论坛中放一个看似安全的链接,骗取用户点击后,窃取cookie中的用户私密信息:或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点.XSS防范方法首先代码里对用户输入的地方和变量都需要仔细检查长度和对"<",">",";",&q

爱创课堂每日一题-你做的页面在哪些流览器测试过?

1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 答: IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发)

爱创课堂每日一题-Javascript垃圾回收方法?

标记清除(markand sweep) 这是JavaScript最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为"进入环境",当变量离开环境的时候(函数执行结束)将其标记为"离开环境". 垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了 引用计数(referencecounting) 在低版本IE中经常会出现内存

爱创课堂每日一题第七天8/31TCP和UDP的区别?

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次"对话"才能建立起来UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议.它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去! UDP适用于一次只传送少量数据.对可靠性要求不高的应用环境.

爱创课堂每日一题 Web Worker 和webSocket?

worker主线程:    1.通过 worker = new Worker( url ) 加载一个JS文件来创建一个worker,同时返回一个worker实例.    2.通过worker.postMessage( data ) 方法来向worker发送数据.    3.绑定worker.onmessage方法来接收worker发送过来的数据.    4.可以使用 worker.terminate() 来终止一个worker的执行.WebSocket是Web应用程序的传输协议,它提供了双向的,

爱创课堂每日一题第十一天常见web安全及防护原理

sql注入原理就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.总的来说有以下几点:    1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等.    2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取.    3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接.    4.不要把机密信息明文

爱创课堂每日一题第八天说说你对作用域链的理解?

作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的.

爱创课堂每日一题第二天8/24日 Quirks模式是什么?它和Standards模式有什么区别?

从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度. 在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢? 在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧

爱创课堂每日一题第二十一天-移动端性能优化?

尽量使用css3动画,开启硬件加速. 适当使用touch事件代替click事件. 避免使用css3渐变阴影效果. 可以用transform: translateZ(0)来开启硬件加速. 不滥用Float.Float在渲染时计算量比较大,尽量减少使用 不滥用Web字体.Web字体需要下载,解析,重绘当前页面,尽量减少使用. 合理使用requestAnimationFrame动画代替setTimeout CSS中的属性(CSS3     transitions.CSS3 3D transforms.