Lirui Blog

一面代码,一面艺术

WPO二续--HTTP

hypertext transfer protocol 超文本传输

History HTTP 0.9: 单条语句 Tim Berners-Lee 设计了HTTP, 是最初的www的萌芽阶段 客户端请求一个单独的ASCII码字符串 客户端请求以CRLF结尾 服务器响应一个ASCII码流 服务端响应一个HTML 传输完成后连接终止 比如现在还支持的telnet命令, GET方法进行请求, 没有请求头或其他元数据, 只有HTML, ...

WPO一续 wireless Network

无线通信

现在无线连接无处不在, 用户也不会关心你的应用是不是”有线应用”, 他们只希望不管在什么情况下, 访问相同的网址, 有相同的使用体验, 得到相同的结果, 甚至更好. 无线标准有相当多种: WIFI, Bluetooth, MIMAX, ZigBee, NFC, LTE, HSPA, EV-DO, 甚至更早的3G, 卫星通信.如果要把每一个都搞懂然后去优化那是需要相当大的勇气, 好消息的大多...

WPO(Web Performance Optimization) 上

TCP, UDP和TLS

一直以来不敢写性能优化的东西, 但是自己写的代码越多, 调试的过程越多, 就越来越觉得性能优化是一个值得花大心思去考虑的, 加上自己也一直在致力写出更好的用户体验的代码, 总之, 先开始写吧, 一次写不完就以后分多次进行补充. 其实之前也有说过一些性能优化的东西, 比如介绍 PWA 的时候, 就有涉及部分的优化方式, 使用SW并发请求啦, 离线缓存资源啦, 还有之前说的HTTP/2的多路复...

HTTP/2

改革开放, 走进新时代

http2是很早就想写的内容了, 这是 http/1.1以来跨版本的升级, 解决了以前很多问题, 可以大幅度的提高 http 的响应速度, 充分利用每一个 tcp 连接. 头图就是来自一个非常出名的 http/2的 demo, 感兴趣的可以点进去看一下, 会有更直观的了解. 网络请求最主要的影响因素有 1 带宽 2 延迟 带宽 现在动辄百兆光纤入户, 带宽已经不再是很大的...

App structure

自制轻型应用框架

创建大型应用时, 必不可少的需要一个程序架构 本文主要包括以下部分 单页应用架构 MV* 数据模型(model)和数据模型集合(collection) 单数据视图(item view) 和 集合视图 (collection view) 控制器(controller) 事件(event) 路由(router) 和 hash导航 中介器(mediator) ...

React 16.6 新特性

React.memo 和钩子们

React 团队在10月23号发布了新版本16.6.0, 添加了一些新特性. React.memo 这个跟 React.pureComponent 很像, 只不过 pureComponent 是对 class 类的支持, 而 memo 是对 function 的支持, 可以让纯函数组件更’纯’ import React from 'react' const MyPureComponen...

typescript decorator

typescript 的装饰器

注解和装饰器都是从ts1.5以后就有的新特性, 主要包括: 类装饰器 方法(函数)装饰器 属性装饰器 参数装饰器 装饰器工厂 带有参数的装饰器 注解是一种作为类声明添加元数据的方法, 元数据就可以被注入依赖注入容器这样的工具所使用. 注解最早是由Google 的 AtScript提出, 但最终没有成为语言标准, 但是装饰器由 Yehuda Katz提出, 已是...

Typescript 3.1

Typescript 3.1 简介

在工程应用中, typescript确实要比js好用很多, 虽然要多写类型判断的代码, 但是这都是前人栽树后人乘凉的好事. 现在ts 3.1发布, 是应该好好学学. ts3.0介绍了一种新的项目引用的概念, 项目引用可以让ts项目依赖于另一个ts项目, 特别是允许 tsconfig.json文件依赖于另一个tsconfig.json. 因为它给了ts(以及与ts相关的工具)一种去理解构建顺...

优化事件处理函数

debounce throttle requestAnimationFrame

概述 浏览器的性能是不同的, 如果事件触发时间较短, 频率较高, 必然会导致浏览器跟不上事件的频率, 导致掉帧,卡顿等问题, 用户体验不佳, 而且事件频繁触发会消耗更多的 cpu 资源以及电量, 对移动端来说是非常严苛的. 所以就需要对事件的处理进行优化.主要有三个方法, debounce, 函数防抖 throttle, 函数节流 requestAnimationFrame...

Git

Version Control

概述 之前零零散散的写过一些 git 的东西, 现在统一放个地方吧, 肯定不全, 但确实是我用到的, 那些不用的指令就请移步官方咯. 全局设置 git 用户名(设置本地,具体某个项目的话将 global 改成 local 即可) git config –global user.name git config –global user.email 生成公私钥 先~/.ssh查看是否有,如...