网站重构的8点建议

news/2024/5/14 23:24:01/文章来源:https://blog.csdn.net/yanzhibo/article/details/38617303

1.用局部变量替换多次使用的对象

比如我们在一段代码内,多次使用document、window这样的对象,我们可以用局部变量替换他们。

var d = document,w = window;

原理:访问直接量和局部变量的速度快,相反,访问数组元素和对象成员相对较慢。

2.减少重绘与重排

重排:当页面布局和几何属性改变时候,需要重排,在重排后浏览器会重新绘制受到影响的部分到屏幕中,这个过程成为重绘。

以下操作会引发重排
·添加删除可见的DOM元素;

·元素位置、尺寸改变;

·文本变更;

·页面渲染器初始化;

·浏览器窗口尺寸改变。

而改变背景、文字颜色只会触发重绘。

我们可以通过如下三步避免重绘、重排:

(1)使元素脱离文档流→方法:隐藏元素

(2)对其应用所有改变→方法:应用修改

(3)把元素带回文档中→方法:重新显示

原理:因为隐藏的元素不会发生重绘、重排。

3.打造快速响应的用户界面

不要让用户等太久,那么多久算久,可用性专家Jakob Nielsen的《可用性工程》中提高,响应用户的时间最好不要超过100毫秒。

我们来拿糗事百科的一个升级来举例,之前的版本我们点赞时候,会触发一个异步请求给服务器,告诉服务器赞的数值应该加1等信息,然后服务器返回赞成功了,页面上赞的数量加1,这个过程慢时可能间隔数秒;之后做出的优化是,在用户点赞后立刻展现一个“赞+1”的动画,然后再给服务器发送异步请求,处理后续数据。

qiubaidemo

这个优化给用户的感觉就是更快了,用户的动作得到了快速反馈,这无疑是个进步,所以我们要尽可能快的对用户操作做出反应。

4.使用JSON替换XML

这个无需多说,JSON用做数据传输,它的体积要比XML小很多。

5.压缩合并你的JS与CSS

JS、CSS在线压缩工具:http://app.baidu.com/app/enter?appid=152856

另外你可以尝试用一些工具进行动态压缩,如:

Minify: https://code.google.com/p/minify/downloads/list

6.避免使用CSS表达式

background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );

表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算。

所以,在非不得已,请避免使用CSS表达式。

7.不要使用for-in循环遍历数组元素

原理:for-in每次迭代操作会同时搜索实例或原型属性,因此,它比while和for会产生更多的开销。

8.使用事件委托

当页面中有大量元素需要绑定事件处理器的时候,我们不要这样做:

$(“#myul li”).click(function(){});

我们可以改用(jquery1.7+用on代替了delegate和live)

$(“#myul”).on(“click”,”li”,function(){});

原理:事件逐层冒泡并被父级捕获,只需要给外层元素绑定一个处理器,就可以触发所有子集事件,而不需要给每个自己元素都绑定处理器,这是一种资源的浪费。

希望以上经验能对你有所帮助,如果你想了解更多关于高性能方面的知识,你可以尝试阅读大神zakas的《高性能Javascript》或者Steve souders的《高性能网站建设指南》




原文:http://www.cnblogs.com/babyisun/p/3584091.html

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

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

相关文章

大气 html5 企业网站,高端大气HTML5科技企业网站响应式网站带后端

页面简洁简单,容易管理,DEDE内核都能使消耗;附带测试数据!模板主要适消耗于,企业网站展现网站等。模板特点:1,模板包括首页、列表页、企业简介、以及内容页等页面,代码书写规范&…

浅谈Web网站架构演变过程

原文地址:http://www.codeceo.com/article/web-artche-changes.html#0-tsina-1-84073-397232819ff9a47a7b7e80a40613cfe1 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: …

网站架构系列:消息队列

原文地址:http://www.codeceo.com/article/web-archte-message-queue.html#0-tsina-1-26189-397232819ff9a47a7b7e80a40613cfe1 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问…

让网站永久拥有HTTPS - 申请免费SSL证书并自动续期

本文永久地址为什么要用HTTPS相关简介 Let’s EncryptCertbot便宜SSL 获取HTTPS证书 命令行 安装Certbot申请证书 图形化 部署HTTPS证书设置HTTP强制跳转HTTPS命令行下设置证书自动续期附: 其它环境下的证书部署Nginx相关命令crontab相关命令 参考文档 本文永久地址…

分享10个超棒的设计素材网站

对于设计师来说,在工作中遇到的最糟糕的情况,莫过于灵感枯竭。而解决这个问题最好的方式,就是多逛设计素材网站。通过这种方式,不仅可以欣赏其他设计师们的作品,让自己脑洞大开,而且还能收获丰富的资源&…

【首篇】我想谈谈大型网站架构

如果能够学到架构理论,是一件很幸福的事,而要是能够从0到1搭建一个完整的大型网站,并且,将其投入到生活当中,还能被大多数人所使用,则是一件很幸运的事了。 这系列博客不谈业务,只谈技术&#…

SEO网站标题优化

【阅读文章申明】 作者只是想把自己实践中的经验分享给大家,如果文章里面有在大神面前显的很低级的知识点。那么大神你可以不看,请不要发一些“浪费流量”“辣鸡”之类嘲讽的话,这也不是交流的一种方式。每一篇文章都是作者自己。截图&#x…

linux 内核位置无关,常用的设备无关启动时参数 - Linux操作系统内核启动参数详解_Linux教程_Linux公社-Linux系统门户网站...

常用的设备无关启动时参数。1、init=...设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 k…

浏览器网站打印标签

网站通过浏览器来打印标签 文章目录网站通过浏览器来打印标签一、标签需要条码?二、使用前的标签打印机的配置三、使用步骤1.引入maven包2.编写生成条码的工具类3.封装调用接口,生成条码,并跳转到标签打印页面。4.页面调用浏览器的打印工具5.…

10个很棒的学习Android 开发的网站

10个很棒的学习Android 开发的网站 看到江湖旅人 写的《10个很棒的学习iOS开发的网站 - 简书》,所以就忍不住写Android 啦,也希望对大家有帮助。 我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议&…

VS2012发布网站详细步骤

1、打开你的VS2012网站项目,右键点击项目》菜单中 重新生成一下网站项目;再次点击右键》发布: 1、打开你的VS2012网站项目,右键点击项目》菜单中 重新生成一下网站项目;再次点击右键》发布&am…

网站出现无法连接数据库错误,Temp文件夹权限对网站的影响

服务器上几个ASP Access的网站出现无法连接数据库的问题,数据库文件夹的权限没有问题,重启IIS,重启服务器,都不能解决。 最后解决方法是,修改Windows下Temp文件夹的user权限,因为数据库的读写会在系统中产…

ASP.NET:部署网站

IIS:信息服务器 必须在服务器上装上IIS,再把做的网页放在IIS上。 “这台配制够高的电脑装了IIS之后才叫做服务器” 部署ISS的流程: 1.打开控制面板,将查看方式改为大图标,点击“程序和功能”,点击“启用…

【CSS+DIV】(3)——网上购物网站

背景:CSS学习已经完成了,这部分内容比较好玩,后面还分析制作了各种小例子,UI的内容做的十分绚丽多彩,如果加上后台内容就会更加完美了。目前网络上的购物网站已经越来越多了,淘宝、京东、当当等大型购物网站…

HTML网站世界的多姿多彩---C#

前言:学习HTML的时候,感觉特别好玩,同时在这些点滴中也学会了非常多的知识。下面是总结的网站的知识点,和大家分享一下。 (一)入门 1.准备:HTML是通用语言(只需要有浏览器和记事本…

服务器(6)--Nginx实现HTTPS网站设置

一、HTTPS 全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是…

考试系统维护--网站发布注意事项

考试系统维护过程中做的最多的事情之一就是网站发布,从最初拿过来的旧的考试系统搭建发布,到自己修改后新的考试系统再次一次次发布测试,甚至还有各种备份服务器的发布,发布网站这件事情也就从最初的慢慢吞吞,磕磕绊绊…

小心错误使用EasyUI 让网站性能减半

小心错误使用EasyUI 让网站性能减半 背景: 最近接手了公司一个做了小一年的项目—高校教务基础系统,先不谈需求,和系统架构,直接上来就被抛来了一个问题----基础性能太差了,一个网页打开要好几秒。我了个天&#xff0c…

Python爬虫:爬取链接被加密的网站中的视频《传闻中的陈芊芊》

最近,腾讯视频上映了一部名为《传闻中的陈芊芊》的网剧,又甜又虐又搞笑,就连我这个不怎么看剧的人,看了几分钟左右的剪辑就突然开始了我的追剧之路。剧情大概是男主… 呀!跑题了!差点就又开始了…/偷笑/偷笑…

码农如何快速打造一个有设计感的网站

[核心提示] 还在用 WordPress 建站吗?落后了亲!赶紧试试 Twitter Bootstrap 吧。注:拥有属于自己的网站是很多人的梦想,但大多数人只能借助像 WordPress 这样的 CMS 实现,甚至很多公司网站也是这样。但这些网站大多数看…