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数量最少 ...
随机推荐
- vb6源码后台点击任意窗口指定坐标XY位置,支持FLASH和一般的游戏
vb6源码后台点击任意窗口指定坐标XY位置,支持FLASH和一般的游戏,支持每个网页用不同的IP登陆,支持多线程自动点击 适合自动打怪,游戏练级,配合自动识图功能,自动验证码技术,可以实现更多功能. ...
- python中的中文编码
我现在编写python代码,有一些内容需要用中文编写,例如注释,一些其它的东西 默认python是不支持中文的,包括两个方面不支持,一是文件编码默认是ansi的,二是虚拟机运行解析脚本时也是非utf的 ...
- [置顶] Oracle 11g Data Guard Role Transitions: Failover
Role TransitionsInvolving Physical Standby Databases A database operates in one of the following mut ...
- 配置虚拟主机并更改Apache默认解析路径
配置虚拟主机,非常easy 改动以下文件: 加入以下几句话 <VirtualHost *:80> ##ServerAdmin webmaster@dummy-host2.example.c ...
- Spring MVC+JSP实现三级联动
jsp代码 <script type="text/javascript"> $(function() { initProvinces(); }); /** * 获取省列 ...
- Eclipse 修改maven 仓储Repository位置
简述: 使用两个Nexus, 需要配置两份不同的Maven仓库 步骤: 1. 下载新的Maven运行包 2. 进入conf/ 修改setting.xml项 <localRepository> ...
- [docker]docker的四种网络方式
声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...
- 访问项目时,不能自动加载index.php文件
1.修改配置文件D:\lamp\apache\conf\httpd.conf加上DirectoryIndex index.hmtl index.php <IfModule !mpm_netwar ...
- sqlHelper的增删改查
当一件事情被反复做了多次后.会想找一种办法来取代自己去做这个反复的动作. 敲代码也一样. 在程序中.对于反复的部分.假设是全然同样,那我们就会想着将其写成一个方法(过程.函数),放在一个具有权限的需求 ...
- VSTO学习笔记(七)基于WPF的Excel分析、转换小程序
原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...