Alex的小站

好记性不如烂笔头


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

koa2中间件机制

发表于 2017-12-10 | 分类于 node
koa2中间件的核心实现:数组 + Promise + 递归 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061// koa1 使用generatorfunction compose(middleware) { ...
阅读全文 »

node中的事件循环

发表于 2017-12-10 | 分类于 node
node 异步I/O的4要素:请求对象,线程池,观察者,事件循环 event-loop 查看官网介绍 https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ ┌───────────────────────────┐ ┌─>│ timers │ │ └────── ...
阅读全文 »

服务端渲染ssr

发表于 2017-12-05 | 分类于 node
背景:团队长久以来采用的工作模式都是后端返回一个vm,在vm里引用前端资源文件。当用户请求这个vm,通过在前端脚本异步获取数据来进行渲染。由于页面需要依赖数据来进行渲染,所以总是会有一段时间“白屏”。为了减少白屏的时间,我们采用的方案是页面先展示一个小骆驼loading图来缓解这种尴尬。但这仍然没有解决页面加载时间缓慢,用户体验不好的问题。 最近小半年来团队接了很多运营活动类推广页面。这类活动有个 ...
阅读全文 »

manifest.json

发表于 2017-11-15 | 分类于 builder
webpack做前后端关联的两种方式 方式1:webpack直接打包生成一个单独的index.html,服务端直接拷贝index.html做模板文件。这种方式和之前用java,php做后端语言时机制是一样的,缺点在于不够灵活,后端对模板文件的控制权限不够。 tips: 使用插件html-webpack-plugin, inline-manifest-webpack-plugin可以简化设置。 方式 ...
阅读全文 »

graphql在去哪儿dsp系统中的尝试

发表于 2017-11-11 | 分类于 work
背景去哪儿dsp广告投放系统,是自己17年下半年开发维护的项目之一,采用的技术栈是egg + antdesign. 最初从0开始搭建,到现在基本稳定大概有一个多月的时间,中间还经历了一次大的迭代改版。这里mark下心得。 dsp目的主要是为了更好的帮助产品运营在市场营销方面的工作。支持在线管理和组装去哪儿对外的广告投放计划,相关素材模板,竞价花费等。业务性较强,它有两个很明显的业务特点: 投放计划 ...
阅读全文 »

区分几个进程相关概念

发表于 2017-08-17 | 分类于 node
守护进程区分3个概念:前台进程,后台进程,守护进程 前台进程: node index.js后台进程: node index.js &守护进程: nohup node index.js & 前台进程和后台进程二者的本质不同在于后台进程没有继承标准输入,因此当开启一个后台进程后,用户还可以在控制终端上输入其他命令。后台进程继承了当前session的标准输出和标准错误,所以后台进程的所 ...
阅读全文 »

babel

发表于 2017-08-14 | 分类于 js
在web工程里经常会引用一大堆babel包,它们主要用来是干什么的babel支持命令行操作引入babel-cli包,内置有两个命令babel, babel-nodebabel index.js -o b.js // 把index.js用babel转码后输出到b.jsbabel-node index.js // 可以直接运行脚本,不需要额外处理 babel-register每次requir ...
阅读全文 »

web图片加载和渲染时机

发表于 2017-08-02 | 分类于 css
在网页中经常和图片打交道,一般用到的图片有两种引用方式,一是标签,而是通过backgeound引用作为背景图片。但是这两种方式加载图片的时机是不一样的。 关于图片加载和渲染的时机:1.解析HTML(遇到标签会加载图片) —> 构建DOM树2.加载样式 —> 解析样式【遇到background-url属性不会加载背景图片】 —> 构建样式规则树3.加载javascript —> ...
阅读全文 »

requestAnimationFrame/requestIdleCallback

发表于 2017-08-01 | 分类于 browser
帧我们看到的网页,是由浏览器一帧一帧绘制出来的,一般浏览器的刷新频率1分钟可达60帧,即我们常说的60fps。如果一个渲染帧的执行时间超过了16.67ms(1000/60),那么人眼就会感觉到卡顿,因此我们常说为了保持页面流畅度,要尽可能使浏览器在16.67ms内完成渲染。 浏览器在一帧内做了哪些工作从网上找了一张图: 一个渲染帧中先后包含 与用户的交互,js执行,调用raf函数,样式计算,布局 ...
阅读全文 »

异步回调的异常处理

发表于 2017-07-20 | 分类于 js
上一篇文章提到了js事件循环机制中的两种队列类型:micro-task,macro-task。这里简单mark一下工作中遇到的相关异常处理问题。 Promise1.Promise只能捕获来自上一级的异常, then()和catch()返回的仍然是一个Promise。2.在Promise的回调中,throw和reject都可以抛出错误。但是throw和reject有本质的不同: throw是条同步 ...
阅读全文 »
1…345…7
Alex

Alex

65 日志
9 分类
18 标签
GitHub E-Mail
© 2019 Alex
由 Hexo 强力驱动
|
主题 — NexT.Mist