目录
1.从用户刷新网页开始,一次 js 请求一般情况下有哪些地方会有缓存处理?
2.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
1.从用户刷新网页开始,一次 js 请求一般情况下有哪些地方会有缓存处理?
DNS缓存,CDN缓存,客户端(浏览器缓存),服务器缓存
DNS缓存是指在正常访问ip之后,系统会将这个ip存储起来,当再次访问的时候,系统就会把本地的DNS缓存提取显示,等于是加速了网址的解析。
CDN是Content Delivery NetWork的简称,即‘内容分发网络'的意思,主要用于分地域的集群服务器,当用户浏览网站请求数据时,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求。
服务器缓存就是存放频繁访问内容的服务器。
2.一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
a. 图片懒加载,滚动到相应位置才加载图片。
b. 图片预加载,如果为幻灯片、相册等,将当前展示图片的前一张和后一张优先下载。
c. 使用CSSsprite,SVGsprite,Iconfont、Base64等技术,如果图片为css图片的话。
d. 如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。
A:在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构:裸奔时也好看;
B:用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;
C:有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;
D:方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备),更好的方式来渲染网页;
E:便于团队开发和维护,语义化更具可读性,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
(1).维护网站,提高内容质量,保持更新
(2).网站结构布局优化:尽量简单、开门见山,提倡扁平化结构。
(3).控制首页链接数量,要适中
(4).导航优化:
a:尽量采用文字方式
b:搭配图片导航,但是图片代码一定要进行优化,img标签必须添加“alt”和“title”属性
c:应该加上面包屑导航
(5).控制页面的大小:减少http请求,提高网站的加载速度
(6).适量的关键词和网页描述
title标题,强调重点即可,
meta keywords标签:关键词,列重要关键字即可
meta description标签:网页描述,要高度概括
body中的标签:尽量让代码语义化
a标签:页内链接,要加 “title” 属性加以说明
img应使用 “alt” 属性加以说明
strong、em标签 : 需要强调时使用
巧妙利用CSS布局
谨慎使用 display:none
保留文字效果
A:外部样式表,引入一个外部 css 文件
B:内部样式表,将 css 代码放在 <head> 标签内部,<style>里
C:内联样式,将 css 样式直接定义在 HTML 元素内部
选择器类型
(1)、ID #id
(2)、class .class
(3)、标签 p
(4)、通用 *
(5)、属性 [type="text"]
(6)、伪类 a: hover
(7)、伪元素 li: nth - child
(8)、子选择器(ul < li) 、相邻选择器(h1 + p)、后代选择器(li a)
权重计算规则
一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。
!important 比 内联优先级高
(1). 第一等:代表内联样式,如: style=””,权值为1000。
(2). 第二等:代表ID选择器,如:#content,权值为0100。
(3). 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
(4). 第四等:代表标签和伪元素选择器,如div p,权值为0001。
(5). 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
(6). 继承的样式没有权值。
(7).相同权重
优先级就近原则,样式定义最近者为准,载入样式以最后载入的定位为准;
继承性
可继承: font-size font-family color;
不可继承 :border padding margin width height ;
CSS3 新增伪类举例:
p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。
p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。
p:only-of-type 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。
p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。
p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。
:enabled、:disabled 控制表单控件的禁用状态。
:checked,单选框或复选框被选中。