美文网首页
2018.10.24.md LOG:http http2 how

2018.10.24.md LOG:http http2 how

作者: 灰喵九命 | 来源:发表于2018-10-25 09:52 被阅读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工作的过程,简单的想象成找代购帮你到日本买奶粉。

    • HTTP请求包含了需要购买商品的所有信息,包括购买的地址,回寄的信息,奶粉的品牌,质量要求,数量,价格范围等
    • 客户端TCP/IP就像本地做代购的,他将你的信息加上他们自己通讯和防伪标志通过协议栈,网卡,路由器等传送给日本的外贸商,当然日本的外贸商就是服务器的TCP/IP,他们早已有了联系
    • 日本商店就像服务器应用程序,收到了外贸商的订单后就解析您的需求,拿出合适您的商品交给外贸商,再快递回本地代购,本地代购再给您
    • 您通过快递信息、商品条形码等附加信息判断商品的真伪,并使用商品,交易结束

    浏览器原理

    用一个图来解释

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

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

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

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

    • 当你增加、删除、修改DOM结点时,会导致Reflow或Repaint
    • 当你移动DOM的位置,或是搞个动画的时候。
    • 当你修改CSS样式的时候。
    • 当你Resize窗口的时候(移动端没有这个问题),或是滚动的时候。
    • 当你修改网页的默认字体时。

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

    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的缺陷

    • 连接无法复用:连接无法复用会导致每次请求都经历三次握手和慢启动
    • Head-Of-Line Blocking:导致带宽无法被充分利用,以及后续健康请求被阻塞
    • 协议开销大
    • 安全因素:HTTP/1.x中传输的内容都是明文,客户端和服务端双方无法验证身份

    HTTP/2的新特性

    • 新的二进制格式
    • Header压缩
    • 流(stream)和多路复用(MultiPlexing)
    • 优先级

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

    相关文章

      网友评论

          本文标题:2018.10.24.md LOG:http http2 how

          本文链接:https://www.haomeiwen.com/subject/mkkqtqtx.html