用 nginx 来反向代理 macOS 80 端口

前言 我们在做 web 服务开发时,经常会遇到需要测试的需求,需要完全模拟线上的环境,如 80 端口。但局限于 macOS 限制非 root 用户不能监听 1024 以下的端口(Windows 用户表示很淡定 😎),网上多数教程是使用 pfctl 做端口转发。这个方法重启后还得重新执行命令,有些麻烦,而且没有用 nginx 转发灵活性高, »

100 行实现一个搜索选择组件

前言 前一阵子遇到了个需求:商户与其账户是一对多的,因此需要分两个表(商户 & 账户),先创建商家再为其创建账户,账户创建需要商家的 id。 对于这类需求,之前一直用 Modal、Table 和 Button 组合的 antd 自定义表单控件来完成: 可仔细一想,以后商户量特别大怎么办,难道要一页一页人工去找么?不行,至少得在表格上加个搜索,但这样组件过于复杂,不利于复用 »

有关 Linux Swap

前言 Linux 将物理内存划分为内存页(分页)。交换是将一页内存数据复制到硬盘中的预设空间(交换区),用以释放该页内存。物理内存和交换区的总大小便是虚拟内存可用总量。 —— All about Linux swap space 看到上述有关交换区的概念大家可能会有些混淆,这里简单介绍一下。 虚拟内存(Virtual memory) 虚拟内存是一种内存管理技术,它把程序使用的内存地址(虚拟地址)映射为计算机内存中的物理地址。虚拟内存有几个优点: 解放应用程序,使其不需要管理共享的内存空间; 内存隔离, »

用 webpack 实现持久化缓存

什么是持久化缓存? 缓存(cache)一直是前端性能优化的重头戏,利用好静态资源的缓存机制,可以使我们的 web 应用更加快速和稳定。仅仅简单的资源缓存是不够的,我们还要为不断更新的资源做持久化缓存(Long term cache)。以前我们能利用服务端模板和构建打包,来给资源增加版本标记,如 app.js?v=1.0.0,但在大流量的网站中,这种更新部署方式会引起下面的问题: 大公司里怎样开发和部署前端代码? - »