前端汇总v1.0

如何进行页面重构?

网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。

也就是说是在不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。

 一.对于传统的网站来说重构通常是:

表格(table)布局改为DIV+CSS

使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)

对于移动平台的优化

针对于SEO进行优化

深层次的网站重构应该考虑的方面

减少代码间的耦合

让代码保持弹性

严格按规范编写代码

设计可扩展的API

代替旧有的框架、语言(如VB)

增强用户体验

二.重构包含速度的优化

压缩JS、CSS、image等前端资源(通常是由服务器来解决)

程序的性能优化(如数据读写)

采用CDN来加速资源加载

对于JS DOM的优化

HTTP服务器的文件缓存



优雅降级与渐进增强

优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会针对旧版本的IE进行降级处理了,使之在旧式浏览器上以某种形式降级体验却不至于完全不能用

如:border-shadow

渐进增强:从被所有浏览器支持的基本功能开始,逐步地添加那些只有新版本浏览器才支持的功能,向页面增加不影响基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。

如:默认使用flash上传,但如果浏览器支持 HTML5 的文件上传功能,使用HTML5实现更好的体验


如何进行错误监控

错误分类

(1)即时运行错误(代码错误)

(2)资源加载错误

错误的捕获

1.即时运行错误

(1)try...catch..

(2)window.onerror

2.资源加载错误

(1)object.onerror

(2)performance.getEntries()

(3)error事件捕获

PS:跨域的JS运行错误能够捕获吗?错误提示是什么?能够处理吗?

可以处理。script error

1.在script标签增加crossorigin属性

2.设置js资源响应头Access-Control-Allow-Orgin:*



UTF8与Unicode区别

UTF-8就是在互联网上使用最广的一种unicode的实现方式。

Unicode的出现是为了统一地区性文字编码方案,为解决unicode如何在网络上传输的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。

ASCII --> 地区性编码(GBK) --> Unicode --> UTF-8


性能优化具体做法

1.从DOM结构和标签上来优化

·使用语义化的标签,代码清晰简洁;

·减少Dom节点,增加渲染速度;

·使用W3C标准书写闭合小写的标签;

·给图片和table指定宽高,避免缩放;

·防止src和href值为空,当为空时,浏览器会把当前页面当做属性值重新加载;

·css在头部位置,js在body底部位置;

2.从CSS样式上来优化

·使用link加载样式而不是@import(是css2提供的一种方式,不兼容,只能加载css,而且页面所有组件被加载完后才会被加载,完成前会导致‘闪烁’,link属于XHTML标签,没有兼容问题);

·避免使用css表达式;

·避免使用css filter滤镜;

·使用css 缩写 如#fff,减少代码量;

·删除重复的css,css简化;

·使用CSS Sprite把同类图片合成一张,减少图片http请求;

·减少css查询层级,如.header .log 要好于.header .top .log;

·减少css查询范围,如header>div获取直系子元素要好于heade div;

·避免TAG标签与CLASS或ID并存:如a.top、button#submit;

3.从js上来优化

·js尽量少用全局变量;

·多个js变量声明合并;

·不使用eval函数,不安全,性能消耗严重

·使用事件代理绑定事件,如将事件绑定到body上进行代理(利用冒泡原理将事件加到父级上,能够给动态增加的元素进行数据绑定);

·避免频繁的操作DOM节点,使用innerHTML代替

·减少对象查找,如a.data.box1.name的查找方式非常耗性能,尽可能的将它定义在变量里;

·类型转换,把数字转字符串使用var str=‘’+1;浮点数转成整形使用Math.floor()或者Math.round();

·js对字符串进行循环操作,譬如替换、查找应该使用正则表达式;

·删除重复的js

·使用setTimeout来避免页面失去响应

·使用hash-table来优化查找

4.其他方面进行优化

·尽量合并js和css,对js和css进行压缩,可以缩短文件传输时间;

·使用CDN加速

·减少Cookie的大小,使用无cookie的域,客户端请求静态文件的时候,减少 Cookie 的反复传输对主域名的影响;

·为文件头指定Expirs,使内容具有缓存性;

·减少DNS查询,权衡;

·避免在html标签中写style属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。