2020.08 视野

2020-11-19


title: 八月视野 date: 2020-8-8 tags: WEB

feeds-pub 同类产品多不重要, 把东西能做好很重要. 作者

Proxy SwitchyOmega chrome 插件用于网络切换, 切换选项卡经常发生卡顿, 该项目为多年前项目, 运行导致了卡顿错误发生.

jvm 的应用 spring boot 内存占用过高, 1.1GB 关闭了其中一个项目, 下降至 584M, 此项目达到了 516M 的内存.

如何实现优雅实现 react keep alive?

Vue keep-alive 的实现原理是怎么样的?

当请求乱序, 需要 A 请求在 B 请求后不再发出, 应该如何实现?

如果表单长达多页且表单联动, 如何优雅的组织代码?

业务错误发生的时候, 重现业务步骤繁多, 如何快捷的重放业务?

浏览器微任务和宏任务的随机组织测试?

koa 的中间件效果是如何实现的? 1.0 解析

function compose(funcArry) {
  return function (next) {
    let index = -1
    function dispatch(i) {
      index = i
      let fn = funcArry[index]
      if (i === funcArry.length) fn = next

      if (!fn) return Promise.resolve()

      try {
        return Promise.resolve(fn(dispatch.bind(null, i + 1)))
      } catch (err) {
        return Promise.reject(err)
      }
    }

    return dispatch(0)
  }
}

compose([
  async function a1(next) {
    console.log('start 1')
    await next()
    console.log('end 1')
  },

  function a2(next) {
    return new Promise((resolve, reject) => {
      console.log('start 2')
      resolve(next())
      console.log('end 2')
    })
  },

  function a3(next) {
    return new Promise((resolve, reject) => {
      console.log('start 3')
      resolve(next())
      console.log('end 3')
    })
  },
])(null)

为什么每次部署这么麻烦?因为没有做 git hook 自动部署。

如何表述一个东西清楚,足够多的信息去描述,预想读者可能提出的问题,当我思考如何表述的时候,让我查找了小学语文的答案,语文大概是最不被重视的一门学科,大家在生活中频繁使用。记叙文:时间背景人物,起因经过结果。议论文:是什么,为什么,怎么做。

fetch 的兼容不容乐观, iOS 11 和 qq browser 9.0 都不兼容.

EventSource 是服务器推送的一个网络事件接口。一个 EventSource 实例会对 HTTP 服务开启一个持久化的连接,以 text/event-stream 格式发送事件, 会一直保持开启直到被要求关闭。

必要的从 vue2 至 vue3 的升级

开发 vue 2/3 都兼容的库

web component libraries 有哪些?

开发跨语言 web component

pwsh 设定$env:xxx=yyy;

在 webpack 中,loader 和 plugin 的区别是什么?

display:none 和 display:hidden 的区别是什么?

如何实现原生的 new 函数? 更简洁的实现

__proto__ 和 prototype 有什么区别?

vue 的 nextTick 原理

git bisect 查找 bug 在哪个提交引入的?

xy-ui loading 源码

重构 we-vui 所需

shadowRoot 样式独立

浏览器空闲时间安排

用于数据上报的无阻塞请求

为什么我们不再需要 redux:使用 React Query 或者 SWR

SWR 做了什么

WebAssembly SIMD(单一指令,多个数据|single instruction, mltple data)..一类利用底层硬件利用数据并行.由于 LLVM 的自动矢量化优化,已经移植为使用 WebAssembly 的应用程序可以从 SIMD 中受益,而无需进行源代码修改。实验版本: Chrome 84-86

内存测量 performance.measureMemory()对于整个网页, 单位是字节, 兼容 Chrome 83 以上, 属于非标准 api. 标准 api 是针对 JavaScript 堆的.

希望 web api 能控制编解码的提案

git commit 规范:

  • feat
  • fix
  • docs
  • style
  • refactor
  • pref
  • test
  • chore
  • revert
  • merge

web-transport 基于 QUIC 的可支持多个双向流的提案

为什么 proxy 优于 defineProperty? 比如只能监听已存在的属性, 对于新增删除属性就无能为力了, 同时无法监听数组的变化. 如果要监听数组的变化, 需要封装数组的原生方法, 'push','pop','shift','unshift','splice','sort','reverse'.

事件委托不再挂到 document 上. 挂在 document 时, 当嵌套组件使用时, e.stopPropagation() 无法正常使用.

react 17 版本特性

ES 参考资料

web-components 官方文档

sqlgui: mycli

针对 web-component 的可视化编辑器?

npm 和 yarn 的存放地址?

npm bin
@user\node_modules\.bin
npm dir
npm@6.14.5 @user\AppData\Roaming\npm\node_modules\npm

yarn bin
@user\node_modules
yarn global dir
@user\AppData\Local\Yarn\Data\global

使用全屏 API

JavaScript 代码转为 TypeScript ts-migrate

相比于 babel alias,更好的代码组织是使用 workspace

“大量小包”是包管理的最佳实践之一,这会使下载大小更小,因为这样做避免了打包体积巨大的代码,却仅使用到了其中很小一部分。

检查过时 deps:

yarn outdated

远程桌面替代品 freeRDP 使用示例 场景:网吧电脑无 mstsc

为什么 2014 年我的代码习惯是用 zip 进行压缩代码上传至服务器? 当时服务器只能内网访问, (并且服务器无法对外上网? 服务器没有 git 软件? 为什么没有使用 scp 进行同步?)

镜像站点通常都是由什么方式同步的?

排序微任务

实现 promise

其他的 JavaScript 环境:

异步 I/O libuv

独立运行时 Realms

如何绑定 rust 于 QuickJS

执行顺序

  • 同步任务
  • 微任务
  • 宏任务

增量思维打包

bash exit codes 异常状态码

通过 echo $? 可查看终端上一进程的 exit code

解决 node promise.reject 不返回 0 的情况

IIFE 创造新的作用域

多边形判断碰撞-A 中某线与 B 中某线相交, 完全不规则图像碰撞-先判断重合区域,然后检测重合区域是否有像素存在

各引擎特性实现

react 树莓派

slate 富文本框架

beam 简单的 webgl 框架

sciter GUI 引擎使用 HTML,CSS 和脚本构建跨平台的桌面应用程序

ewind.us 博客 编程观点 文字阅读通畅 逻辑清晰

如何实现一个无限累加的函数

sum(1)(2)(4).valueOf()

function sum(...args) {
  const f = (...rest) => {
    return sum(...[...args, ...rest])
  }

  f.valueOf = () => {
    return args.reduce((x, y) => x + y, 0)
  }

  return f
}

Kibana 日志收集系统

自行视频解码 mix-blend-mode: screen;可以让视频黑色部分透出下层图片 WasmVideoPlayer 原型演示,ffmepg + wasm 实现,移动端性能较差 WXInlinePlayer 依赖于 flv, 且体积较大 Broadway 作者实现了一套安卓端的 h264 解码器(c 语言实现 + wasm),支持特定编码的 mp4 格式的视频,且支持不完善有黑屏情况,且无法按照视频帧率进行播放(未对视频进行细颗粒度播放) jsmpeg 作者手撸了一个 mpeg-ts 的解码器(支持 JavaScript 与 wasm 版本),支持 ts 格式(mpeg1 编码)的视频,支持较为稳定,可支持细颗粒度播放

api 请求有限字体子集

devDeps 和 deps 放在 node_modules 造成工程项目体积极大, 最简单的分离方案是,把 devDeps 和 deps 分成两个 package.json,分别放在一个 workspace/和 workspace/project 目录下,分别安装,workspace 下是工具,project 下是原项目代码,后续同一个工具链下的工程,都放在 workspace 下即可,不需要 devDeps 了。一切都不用改,module.paths 就这么神奇。

模拟一个 CHIP-8

函数式的好处是无状态, 实际工程实践中大量存在有状态的情况

Monad 是具备单位元和结合律的方法的对象, 能把一个值包装成容器, 对容器里装着的值, 把一个函数应用在值上.

从 ES5 升级到 ES6

在线 PS

JavaScript just in time

firefox 工程工具链

HEIF 照片格式 HEVC 视频

Best of JavaScript js 项目 star 排名

hook 类 状态库 @ice/store

rescript to JavaScript 又一个语言

node_modules 困境

一个面经

Vue 3 做了什么

图片格式处理 lib

用 go 写的 caddyserver

copyright ©2019-2024 shenzhen
粤ICP备20041170号-1