笔试常考--浏览器性能优化

1. 减少http请求

HTTP是无状态协议,每次HTTP请求都要重新建立通信链路。而服务器端每个http请求都要启动独立的线程来处理。因此,减少http请求能有效提高访问性能。

减少HTTP请求的主要手段是合并CSS,javascript和图片。

2. 使用浏览器缓存

对于Logo、图标、CSS和javascript这些静态资源文件,几乎是每次HTTP请求都需要的,如果将这些文件缓存在浏览器中,第一次加载后,以后就不需要请求了。

通过设置HTTP头中的Cache-Control和Expires属性,可以设定浏览器缓存。(Tomcat 7配置参考:http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Expires_Filter

在某些时候,静态资源更新需要及时应用到客户端浏览器。这种情况,可以通过更新文件名来实现。例如:

1 <script type="text/javascript" src="/js/xx.js"></script>

xx.js更改了。这时可以将xx.js重命名。并修改HTML文件中的引用。

1 <script type="text/javascript" src="/js/xx2.js"></script>

3. 启用压缩

Nginx中启用压缩:

nginx.conf:

 1 # 启用压缩
 2 gzip on;
 3
 4 # 大于1K的才压缩
 5 gzip_min_length 1k;
 6
 7 # 缓冲区,用默认就可以
 8 gzip_buffers 4 16k;
 9
10 # 默认值是1.1,就是说对HTTP/1.1协议的请求才会进行gzip压缩。如果使用了反向代理,则nginx和后端的upstream server之间是用HTTP/1.0协议通信
11 gzip_http_version 1.0;
12
13 # 压缩级别,1-10,越大压缩率越高,开销也越大
14 gzip_comp_level 2;
15
16 # 进行压缩的文件类型。js文件有两种写法,最好都写上
17 gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
18
19 gzip_vary on;
20
21 # IE6对Gzip不怎么友好,不给它Gzip了。
22 gzip_disable "MSIE [1-6].";

4. CSS放在页面最上面,Js放在页面最下面

浏览器会在下载完全部CSS文件之后,才对页面进行渲染,因此应该讲CSS文件放在页面最上面,让浏览器尽快下载。javascript则相反,浏览器在加载javascript后立即执行,有可能会阻塞整个页面,造成显示缓慢,因此javascript最好放在页面最下面。

CSS文件:

1 <head>
2     ...
3     <link href="/css/xx.css" rel="stylesheet" type="text/css" />
4     ...
5 </head>

js文件:

1     ...
2     <link type="text/javascript" src="/js/abc.js">
3     ...
4 </body>

5. 减少Cookie传输

Cookie在每次请求和响应中都要传输,因此Cookie要尽量小。

另一方面,在请求css和js等静态资源时,也会带上Cookie,这时发送Cookie没有意义。这种情况可以考虑静态资源使用独立域名,避免请求静态资源时发送Cookie。

原文地址:https://www.cnblogs.com/dayangge/p/8659289.html

时间: 2024-10-10 21:45:39

笔试常考--浏览器性能优化的相关文章

笔试常考--浏览器输入一个URL点击回车之后发生了什么

解析URL:浏览器首先对拿到的URL进行识别,抽取出域名字段. DNS解析: 查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到, 检查系统缓存,检查hosts文件,这个文件保存了一些以前访问过的网站的域名和IP的数据.它就像是一个本地的数据库.如果找到就可以直接获取目标主机的IP地址了.没有找到的话,需要 检查路由器缓存,路由器有自己的DNS缓存,可能就包括了这在查询的内容:如果没有,要 查询ISP DNS 缓存:ISP服务商DNS缓存(本地服务器缓存)那里可能有相

面试笔试常考的mysql 数据库操作group by

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点. 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性. 首先,给出一个studnet学生表: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `sex` tinyint(1) DEFAU

【笔试常考】C语言:深度剖析strlen,sizeof

在之前的博客中,我也探索过strlen,sizeof区别,详情可见博客http://10740184.blog.51cto.com/10730184/1705820. 关于strlen,sizeof均可求字符串长度,这两者是笔试面试常考的知识点. #include<stdio.h> #include<stdlib.h> #include<string.h> //void Test1() //{ //    char* arr = "hello world!&q

浏览器性能优化

1. 减少http请求,合理设置 HTTP缓存 http协议是无状态的应用层协议,意味着每次http请求都需要建立通信链路.进行数据传输,而在服务器端,每个http都需要启动独立的线程去处理.这些通信和服务的开销都很昂贵,减少http请求的数目可有效提高访问性能. 减少http的主要手段是合并CSS.合并javascript.合并图片.将浏览器一次访问需要的javascript和CSS合并成一个文件,这样浏览器就只需要一次请求.图片也可以合并,多张图片合并成一张,如果每张图片都有不同的超链接,可

关于浏览器性能优化-转

网页性能管理详解 作者: 阮一峰 日期: 2015年9月17日 你遇到过性能很差的网页吗? 这种网页响应非常缓慢,占用大量的CPU和内存,浏览起来常常有卡顿,页面的动画效果也不流畅. 你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站.作为一个开发者,肯定不愿意看到这种情况,那么怎样才能提高性能呢? 本文将详细介绍性能问题的出现原因,以及解决方法. 一.网页生成的过程 要理解网页性能为什么不好,就要了解网页是怎么生成的. 网页的生成过程,大致可以分成五步. HTML代码转化成DO

笔试常考的Java基础

1. Socket编程:ServerSocket (int port) :Creates a server socket, bound to the specified port. Socket(InetAddress address, int port) :Creates a stream socket and connects it to the specified port number at the specified IP address. 2. Java接口知识:接口中的变量默认是p

C语言笔试常考知识点

1. const 关键字 a)  const int a; b)  int const a; c)  const int *a; d)  int * const a; e)  int const * const a; 解析: a)  a为一个int型变量,在它被定义时就应当对其初始化,因为以后就没有机会再去改变它了. b)  与 a) 是一个意思,const 与 int 的位置可以互换. c)  const 与 int 修饰的都是 (*a) ,这里的a是一个指向 int 型变量的指针,指针 a

笔试常考题型之时间复杂度

一.介绍 在互联网公司笔试题中,总有那么一两道题是考查是否会求算法的时间复杂度,在此列出一些例题进行研究和探讨. 二.例题 题目解析: 时间复杂度主要取决于N的最高次幂数,即最大的影响因子,所以答案是 C. 题目解析: 算法的复杂度主要包括时间复杂度和空间复杂度. 算法的时间复杂度是指执行算法所需要的计算工作量,可以用执行算法过程中所需基本运算的执行次数来度量:算法的空间复杂度是指执行这个算法所需要的内存空间. 根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关.答案是 D. 三.解题感受

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

目录 一.浏览器兼容 1.1.概要 1.2.浏览器内核 1.3.浏览器市场份额(Browser Market Share) 1.4.兼容的一般标准 1.5.CSS Reset 1.6.CSS Hack 1.6.1.条件注释法 1.6.2.样式内属性标记法 1.6.3.选择器前缀法 1.7.文档模式 (X-UA-Compatible) 1.8.javascript兼容 二.前端性能优化 2.1.概要 2.2.减少HTTP请求数量 2.2.1.图片地图 2.2.2.精灵图片(Sprite) 2.2.