WEB网站性能优化
最近做了一个WEB现场。幸运的是,一开始。但后来越来越慢,特别是在调试模式,,这肯定是我们的代码有问题。但是即使业务不是非常复杂的也非常慢,我们就想当然的觉得我们的代码没问题,可最后证明还是我们的代码有问题。我也挺佩服我怎么忍受的了的。这个也是我们不能如期完毕的主要原因。大家都由于慢。非常减少我们的积极性,往往写几句代码调试要话好长时间,所以大家都愿意干点其它的。
先列几点我知道的能够从哪方面入手优化的东西。
从前台入手
1.降低HTTP请求
能够降低JS和CSS文件的个数,把几个合并在一起。降低不必要的图片存在,server传过来HTML文档后。浏览器在解析的时候。遇到img便签。会发生HTTP请求去获取图片。
2.使用浏览器缓存
一个站点他的样式差点儿是一样的,所以内容是同样的,如JS、CSS和图片等,像这些东西就能够放缓存里,下次读缓存即可。
3.图片或者flash资源预载入
有时一个页面有非常多图片和flash资源。假设都一起载入的话,那速度非常慢,影响用户使用心情,所以就能够预载入这些资源,提高用户体验度。
从代码方面入手
1.少循环。尽量杜绝嵌套循环
有的业务十分复杂,按常规思维写的话,会出现非常多循环,甚至嵌套好几层循环。写代码时三层以上的绝对不要有,假设数据量不大的前提,两层三层的能够少有。
2.杜绝全局变量、静态变量,少用锁
尽量杜绝全局变量、静态变量,全部人都操作一份数据,这就会有数据不统一的情况。不要轻易对一个资源加锁。假设对一个资源加锁,下一个人得等上一个人使用完。假设是频繁的訪问这个资源。则效率会大大减少。
3.降低数据库链接
与数据库打一次交到就打开一个连接,也不主动释放。这是不可取的。
假设每次打开链接在关闭链接,这样也是不好的。
能够使用已有的链接。没有已有链接才打开一个链接。
4.使用外部的JS和CSS
将内联的JS和CSS写成外部的JS和CSS,降低反复下载内联的JS和CSS。
数据库的优化
数据库优化也有多值得学习的地方,这里没有深入的研究,就大概写写自己临时知道的一些。设计数据库的时候要遵循数据库三范式,但不是要求严格遵循,如有时也会要写必要的冗余来达到效率的提高。
假设要写SQL语句,要杜绝in。in就相当于代码里的循环,当数据越来越多时,那会非常影响效率的。假设用到了ORM相关的,自然中大部分实体都是相关联的,但并非有点关联就要建立映射关系,那会十分影响效率,仅仅有关联十分密切的才建立关联关系,不然你查询孙子,你就可能把它的父母、爷爷、祖父等都会查询出来。所以也少用关联映射来查询内容。
最后,关于性能优化是一个非常大的方面,有这么多的东西值我们要学习。以上是感觉只是一点点最近。欢迎有其他相关的东西与我分享。
假设我们想知道从什么点优化项目,请关注我的下一篇博客
WEB网站性能优化的更多相关文章
- Web前端性能优化教程05:网站样式和脚本
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:网站样式和脚本代码的放置位置.使用外部javascript和css.完整教程可查看:Web前端性能优化 一.将样式表放在顶部 可视性回馈的重要 ...
- 【读书笔记】读《高性能网站建设指南》及《高性能网站建设进阶指南:Web开发者性能优化最佳实践》
这两本书就一块儿搞了,大多数已经理解,简单做个标记.主要对自己不太了解的地方,做一些记录. 一.读<高性能网站建设指南> 0> 黄金性能法则:只有10%~20%的最终用户响应时间 ...
- 网站的高性能架构---Web前端性能优化
网站性能测试 不同视角下的网站性能 用户视角的网站性能:从用户角度,网站性能就是用户在浏览器上直观感受到的网站响应速度.用户的感受时间包括用户计算机和网站服务器通信的时间.网站服务器处理请求时间.用户 ...
- 大型网站技术架构(3):WEB 前端性能优化
上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...
- Web前端性能优化教程06:减少DNS查找、避免重定向
本文是Web前端性能优化系列文章中的第六篇,主要讲述内容:减少DNS查找.避免重定向.完整教程可查看: 一.减少DNS查找 基础知识 DNS(Domain Name System): 负责将域名UR ...
- Web前端性能优化教程08:配置ETag
本文是Web前端性能优化系列文章中的第五篇,主要讲述内容:配置ETag.完整教程可查看:Web前端性能优化 什么是ETag? 实体标签(EntityTag)是唯一标识了一个组件的一个特定版本的字符串, ...
- Web前端性能优化教程07:精简JS 移除重复脚本
本文是Web前端性能优化系列文章中的第七篇,主要讲述内容:精简Javascript代码,以及移出重复脚本.完整教程可查看: 一.精简javascript 基础知识 精简:从javascript代码中 ...
- WEB前端性能优化:HTML,CSS,JS和服务器端优化
对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...
- 网站性能优化(Yahoo 35条)
Yahoo 网站性能优化 35条 一.内容部分 尽量减少 HTTP请求 减少 DNS查找 避免跳转 缓存 Ajxa 推迟加载 提前加载 减少 DOM元素数量 用域名划分页面内容 使 frame数量最少 ...
随机推荐
- unity中怎样获取全部子物体的组件
public GameObject[] obj; void Awake() { for (int i = 0; i < obj.Length; i++) ...
- 手把手教你_android自己主动化实践方案选型
接到一个android自己主动化的任务,看了看手中的家伙:ranorex,appium,uiautomator 当然先捡商用的试试,简单呀,能够录制回放,只是不是抱特别大的期望,这个爷比較娇气,要是a ...
- 使用BBED恢复数据文件头
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/31018075 @@@@@@@利用BBED模拟损坏5文件1号块(文件头) BBED> ...
- C语言中输入输出重定,freopen()妙用。
使用的理由(范围):如果输入数据很庞大,需要一次又一次的重新输入和调试时可采用本函数. freopen ()函数: 1.格式 FILE * freopen ( const char * filenam ...
- Indy的TCPServer到底能支持多少个连接
最近一个项目,最开始使用IdTcpServer,在大压力测试的时候,只连接了800个多一点的客户端(每个客户端连接上之后每秒钟发送一个几十字节的报文,服务器应答).但是持续的时间不会超过10分钟,服务 ...
- 14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读
14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读 一个预读请求 是一个I ...
- BZOJ 3218(a + b Problem-二分图套值域线段树)
出这题的人是怎么想出来的…… 言归正传,这题是二分图套值域线段树. 首先经过 @Vfleaking的神奇建图后,把图拆成二分图, 不妨利用有向图最小割的性质建图(以前我一直以为最小割和边的方向无关,可 ...
- PHP中如何实现 “在页面中一边执行一边输出” 的效果
<?php set_time_limit(0); //在有关数据库的大量数据的时候,可以将其设置为0,表示无限制. ob_end_clean(); //在循环输出前,要关闭 ...
- OCP读书笔记(2) - 配置恢复
RMAN的命令类型 1. sqlplus命令 [oracle@oracle admin]$ export ORACLE_SID=orcl [oracle@oracle admin]$ rman tar ...
- cocos2d-x3.2下使用Umeng 64位SDK注意事项
友盟官方的样例中已经有了Cocos2d-x的Demo使用起来也是比較方便的.但在64位的版本号使用时须要注意 32位SDK改动: 将Xcode中Build Settings的Architectures ...