关于web优化(一)
我们所说的web,无非就是html,css(web font, image),JavaScript。
HTML优化建议:
1. 尽量不要用table进行布局。
2. 尽量用最新的带有语义的h5标签,这样在解析跟渲染时更快。
3. 使用块传输数据,web服务器响应头设置:Transfer-Encoding: chunked
4. 预处理DNS,DNS缓存。可以通过link标签增加rel=“dns-prefetch”,如:<link rel="dns-prefetch" href="//google-analytics.com" >
5. html压缩:
a. 删除所有空白字符,包括spaces,tabs,newline等。
b. 删除简单值的引号。
c. 删除可选的关闭标签,如:</body>,</p>,</li>
d. 尽量使用短一点的id标识
CSS优化建议:
1. 用外部CSS文件。
2. 异步加载CSS,可以借助loadCSS,AsyncLoader等这些工具。或者动态创建link标签实现。
3. 压缩CSS文件,包括web字体的压缩。
4. 尽可能早的加载web字体,可以在html文件的style标签定义字体,如下:
<style>
@font-face{
font-family: my-font;
src: url(my-font.woff);
}
</style>
5. 可以使用FontFace API动态加载字体。
JAVASCRIPT优化建议:
1. JS压缩。
2. 异步加载,可以借用requireJS,可以动态创建script标签。
3. <script>:js在加载时会阻塞其他资源的下载渲染;<script defer>:js在加载时不会阻塞其他资源的下载渲染,js加载完不会立即执行,而是等到所有其他资源下载完成js才会执行,适合js有其他依赖的情况;<script async>:js在加载时不会阻塞,js加载完会立即执行,执行的时候回阻塞。
4. DOMContentLoaded事件会在load事件之前触发。
IMAGE:
1. 给img标签设置宽度高度可以提升渲染性能,如:<img src="logo.png" width="300" height="100" alt="Logo">
2. 对于小图标可以使用data url方式内联加载。转换为base64后的字符大小一般会比图片本身大30%,但有web服务器一般启用gzip,gzip会压缩base64进行传输,所以结果反而甚至会小很多。
3. 选择正确的图片格式及图片压缩率,新的图片格式:jpeg-xr,webp,apng
4. 合并图片减少请求数,需考虑图片个数与合并后图片的大小平衡问题,一般不要超过10个图片的合并。
总结:
1. 服务器端支持http/1.1,支持压缩(gzip等)。
2. 尽量减少请求数量,实现资源共享。
3. 支持块传输,以便尽可能早解析html并发现内联的请求。
4. 支持DNS缓存,预查询DNS。
5. 尽可能减少CSS文件大小及个数(CSS压缩)
6. 使用新的高性能的js加载工具,如requirejs。
7. 优化图片的大小,减少网络占用。
关于web优化(一)的更多相关文章
- web优化及web安全攻防学习总结
web优化 前端:(高性能网站建设进阶指南) 使用gzip压缩(节省服务器的 网络带宽) 减少http请求( 减少DNS请求所耗费的时间. 减少服务器压力. 减少http请求头) 使用cdn(用户可以 ...
- 转:Web优化 及常用工具包
Web优化: 减少http请求 避免404错误 在html页面header加入缓存标签 Gzip压缩网页 减少cookie体积 使用外部的js和css 消减js和css 压缩js 使用css spri ...
- Web优化躬行记(1)——CSS
Web优化的对象包括页面性能.用户体验.开发效率.代码优化.网络延迟等,本系列会列举出众多常用的优化技巧,每个技巧都可深入分析,在此只做抛砖引玉. 本系列优化内容提炼于<前端面试宝典>.& ...
- web优化 js性能高级篇
今天我们继续上一个阶段关于web的性能优化,如何对js高级进行优化 (1)闭包 何为闭包; 一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 我认 ...
- YaHoo Web优化的14条法则
Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在. 法则1. 减少HTTP请求次数 80%的最终用户响应时间花在前端程序上,而其 ...
- web优化(一)
今天读完了<高性能网站建设进阶指南>,记得博客园的某位前辈说,关于前端方面的书,带指南两个字的一般都是比较牛逼的,上一本看到的好书是<javascript权威指南>是淘宝前段团 ...
- web优化
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过 ...
- Web优化躬行记(2)——JavaScript
一.语言 1)慎用全局变量 当变量暴露在全局作用域中时,由于全局作用域比较复杂,因此查找会比较慢. 并且还有可能污染window对象,覆盖之前所赋的值,发生意想不到的错误. 0 == '' //tru ...
- Web优化躬行记(3)——图像和网络
一.图像 1)响应式图像 浏览器根据屏幕大小.设备像素比.横竖屏自动加载合适的图像. 响应式的功能可以通过srcset和sizes两个新属性实现. 前者可指定选择的图像以及其大小,后者会定义一组媒体条 ...
随机推荐
- Testing - 软件测试知识汇总
软件测试知识梳理 基础概念 : http://www.cnblogs.com/anliven/p/6070000.html 测试分类 : http://www.cnblogs.com/anliven/ ...
- # postgresql-shared_buffers
关于shared_buffers 什么是shred_buffer,我们为什么需要shared_buffers? 1.在数据库系统中,我们主要关注磁盘io,大多数oltp工作负载都是随机io,因此从磁盘 ...
- Nginx + Uswgi + Django的部署
Nginx + Uswgi + Django的部署 待更新 https://code.ziqiangxuetang.com/django/django-static-files.html https: ...
- Nginx+Keepalived 实现高可用
Keepalived 是一个高性能的 服务器高可用 或 热备解决方案,Keepalived主要来防止服务器单点故障的问题,可以通过其与Nginx的配合来实现web服务端的高可用. Keepalived ...
- java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bjsxt.mapper.PeopleMapper
报错信息: Type Exception Report Description The server encountered an unexpected condition that prevente ...
- LearnOpenGL学习笔记(六)——纹理单元
#version 330 core out vec4 FragColor; in vec3 ourColor; in vec2 TexCoord; uniform sampler2D ourTextu ...
- 关于QT中.pro文件中的相对路径
被.pro文件中的相对路径给整糊涂了,仔细研究后,原来.pro文件中有两种相对路径. 一种情况下./表示.pro文件所在的目录 另一种情况下./表示构建生成目录 INCLUDEPATH SOURCE ...
- JavaWeb学习 (十)————Cookie
一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...
- POJ 3268 Silver Cow Party(Dijkstra算法求解来回最短路问题)
题目链接: https://vjudge.net/problem/POJ-3268 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently n ...
- 按值传递 vs. 按指针传递
按值传递还是指针传递? 变量赋值有两种方式:按值传递.按"指针"传递(指针也常称为"引用").不同的编程语言赋值的方式不一样,例如Python是按"指 ...