2018.10.24.md LOG:http http2 how

2018-10-25  本文已影响0人  灰喵九命

昨天去了躺华西,郑光明大夫又给我开了700多的药,加上上次1000多,都要突破2000大关了,没手术,没住院,就回家吃药2个月就2000,这也是没谁了。使着劲的开药,药可以当饭吃么?

这两天看了关于响应式设计和浏览器原理,HTTP相关的知识,分享一下。

响应式设计

建议:大型的综合网站还是根据PC、平板、手机的情况分开来做样式;小型并且操作不复杂的网站,例如博客,还是用响应式布局吧,以移动优先,毕竟现在的人除了办公,已经很少有人像程序员一样天天用PC了吧。

  1. 一般的网站就用用media query就行了,没必要用第三方框架,bootstrap这种玩具还是会影响性能滴,当然如果图方便或者敷衍上司,用用也行,但用之前还是把不需要的剔除掉
  2. @media布局关键在两点:流式布局/断点设置
  3. 布局:一般采用flex、float、百分比、rem等
  4. 兼容:IE9以下需要引用respond
  5. 响应式设计的难点:图片,视频,表格,后面在看
  6. 断点:bootstrap默认断点,可以借鉴
/ 默认为手机端样式

// 等于或大于 34*16 = 544px(手机横屏)
@media (min-width: 34em) { ... }

// 等于或大于 48*16 = 768px(平板竖屏)
@media (min-width: 48em) { ... }

// 等于或大于  62*16 = 992px(pc窄屏)
@media (min-width: 62em) { ... }

// 等于或大于 75*16 = 1200px( pc宽屏)
@media (min-width: 75em) { ... }

// pc超大屏 1380px
@media (min-width: 1380px) { ... }

web是如何工作的

web工作这个话题非常复杂,涉及到浏览器,协议栈,系统网卡,路由器,ISP等等。简单的举个例子吧,你可以把web工作的过程,简单的想象成找代购帮你到日本买奶粉。

浏览器原理

用一个图来解释

image
  1. 根据来自服务器端的HTML代码形成文档对象模型(DOM)
  2. 加载并解析样式,形成CSS对象模型
  3. 在文档对象模型和CSS对象模型之上,创建一棵由一组待生成渲染的对象组成的渲染树
  4. 对渲染树上的每个元素,计算它的坐标,称之为布局
  5. 渲染树上的元素最终展示在浏览器里

这里重要要说两个概念,一个是Reflow,另一个是Repaint。这两个不是一回事。

Repaint——屏幕的一部分要重画,比如某个CSS的背景色变了。但是元素的几何尺寸没有变。
Reflow——意味着元件的几何尺寸变了,我们需要重新验证并计算Render Tree。是Render Tree的一部分或全部发生了变化。这就是Reflow,或是Layout。

所以,下面这些动作有很大可能会是成本比较高的。

如何避免,请参照以下建议:

  1. 不要一条一条地修改DOM的样式。与其这样,还不如预先定义好css的class,然后修改DOM的className
  2. 把DOM离线后修改,先把DOM给display:none(有一次reflow),然后你想怎么改就怎么改
  3. 不要把DOM结点的属性值放在一个循环里当成循环里的变量
  4. 尽可能的修改层级比较低的DOM
  5. 为动画的HTML元件使用fixed或absoult的position
  6. 千万不要使用table布局
  7. 尽量简化和优化CSS选择器,将嵌套程度保持在最低水平
  8. 在使用滚动时禁用复杂的悬停动效

HTTP/2

HTTP/1.x的缺陷

HTTP/2的新特性

基于HTTP /2可以有哪些优化规则,HTTP/1.x哪些优化可以放弃了,请参照以下文章
HTTP2的Web优化
HTTP2提升性能7个建议

上一篇下一篇

猜你喜欢

热点阅读