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数量最少 ...
随机推荐
- 在实体类中将数据库中数据类型为CLOB的数据转化成String类型
@Lob @Basic(fetch = FetchType.EAGER) @Column(name = "JYAQ", columnDefinition = &qu ...
- Disable root 账号登陆
1. 改动文件: /etc/ssh/sshd_config #PermitRootLogin yes 改动为: PermitRootLogin no 2. 重新启动ssh进程 /etc/init.d/ ...
- opencv如何载入内存中的图像文件
其实很简单,cv::imdecode 支持 std::vector<uchar>的,只要把char* 转 std::vector<uchar>就行了.用 std::vector ...
- 14.4.3.3 Making the Buffer Pool Scan Resistant
14.4.3.3 Making the Buffer Pool Scan Resistant 让Buffer Pool 扫描 相比使用一个严格的LRU算法, InnoDB 使用一个技术来最小化数据的总 ...
- Android UI布局TableLayout
了解字面上TableLayout一个表格样式布局.这种布局将包括以行和列的形式的元件被布置.表格列的数目是列的各行中的最大数目.当然,表格里面的单元格它能够清空. 实例:LayoutDemo 执行效果 ...
- Types of Windows
The Window's Real Estate Application's Instance A window is referred to as parent when it can be ...
- win7下怎样设置putty免用户名密码登陆
putty是一款好用的远程登录linux服务器软件,但每次输入用户名密码毕竟有些烦人,这里教你免用户名密码登陆. 工具/原料 putty 方法/步骤 去百度下载putty,小巧易用,仅有0.5 ...
- JNI生成C的头文件
最近再给android封装一个C语言的so,以供安卓程序下使用. 再次记录一下,防止以后忘记了. 首先下载安装JDK,下载地址:http://www.oracle.com/technetwork/ja ...
- 小心LinkedHashMap的get()方法(转)
这是一个来自实际项目的例子,在这个案例中,有同事基于jdk中的LinkedHashMap设计了一个LRUCache,为了提高性能,使用了 ReentrantReadWriteLock 读写锁:写锁对应 ...
- kafka web console安装
貌似非常多小伙伴都不能成功打包,共享下之前打包的文件: http://pan.baidu.com/s/1sjkE37J ======== kafka自己竟然没有还一个Web管理界面.. 这里有个第三方 ...