博客园 - vajoy
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=720411
2022-09-19T02:02:26Z
vajoy
https://www.cnblogs.com/vajoy/
feed.cnblogs.com
https://www.cnblogs.com/vajoy/p/15940185.html
[公告] 本博客停止更新,新文献将发布于掘金 - vajoy
鉴于博客园流量流失严重,日后不再更新本站博客。 后续新的技术文献将在我的掘金进行发布,欢迎关注。 感谢博客园这么多年的陪伴,旧文献依旧留在这边了。 Leaving is for a better beginning. ❤️
2022-02-26T11:22:00Z
2022-02-26T11:22:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】鉴于博客园流量流失严重,日后不再更新本站博客。 后续新的技术文献将在我的掘金进行发布,欢迎关注。 感谢博客园这么多年的陪伴,旧文献依旧留在这边了。 Leaving is for a better beginning. ❤️ <a href="https://www.cnblogs.com/vajoy/p/15940185.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/7000522.html
webpack 插件拾趣 (1) —— webpack-dev-server - vajoy
结束了一季的忙碌,我这封笔已久的博客也终究该从春困的咒印中复苏,想来写些实用易读的作为开篇,自然是最好不过。 新开个 webpack 插件/工具介绍的文章系列,约莫每周更新一篇篇幅适中的文章聊以共勉,兴许合适。 原本期望每篇文章里可以介绍若干个插件,但鉴于部分插件略为复杂,且单篇内容不想写的唇焦舌敝
2017-06-17T04:09:00Z
2017-06-17T04:09:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】结束了一季的忙碌,我这封笔已久的博客也终究该从春困的咒印中复苏,想来写些实用易读的作为开篇,自然是最好不过。 新开个 webpack 插件/工具介绍的文章系列,约莫每周更新一篇篇幅适中的文章聊以共勉,兴许合适。 原本期望每篇文章里可以介绍若干个插件,但鉴于部分插件略为复杂,且单篇内容不想写的唇焦舌敝 <a href="https://www.cnblogs.com/vajoy/p/7000522.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6359950.html
gulp源码解析(三)—— 任务管理 - vajoy
上篇文章我们分别对 gulp 的 .src 和 .dest 两个主要接口做了分析,今天打算把剩下的面纱一起揭开 —— 解析 gulp.task 的源码,了解在 gulp4.0 中是如何管理、处理任务的。 在先前的版本,gulp 使用了 orchestrator 模块来指挥、排序任务,但到了 4.0
2017-02-08T16:13:00Z
2017-02-08T16:13:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】上篇文章我们分别对 gulp 的 .src 和 .dest 两个主要接口做了分析,今天打算把剩下的面纱一起揭开 —— 解析 gulp.task 的源码,了解在 gulp4.0 中是如何管理、处理任务的。 在先前的版本,gulp 使用了 orchestrator 模块来指挥、排序任务,但到了 4.0 <a href="https://www.cnblogs.com/vajoy/p/6359950.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6357476.html
gulp源码解析(二)—— vinyl-fs - vajoy
在上一篇文章我们对 Stream 的特性及其接口进行了介绍,gulp 之所以在性能上好于 grunt,主要是因为有了 Stream 助力来做数据的传输和处理。 那么我们不难猜想出,在 gulp 的任务中,gulp.src 接口将匹配到的文件转化为可读(或 Duplex/Transform)流,通过
2017-01-31T12:49:00Z
2017-01-31T12:49:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】在上一篇文章我们对 Stream 的特性及其接口进行了介绍,gulp 之所以在性能上好于 grunt,主要是因为有了 Stream 助力来做数据的传输和处理。 那么我们不难猜想出,在 gulp 的任务中,gulp.src 接口将匹配到的文件转化为可读(或 Duplex/Transform)流,通过 <a href="https://www.cnblogs.com/vajoy/p/6357476.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6349817.html
gulp源码解析(一)—— Stream详解 - vajoy
作为前端,我们常常会和 Stream 有着频繁的接触。比如使用 gulp 对项目进行构建的时候,我们会使用 gulp.src 接口将匹配到的文件转为 stream(流)的形式,再通过 .pipe() 接口对其进行链式加工处理; 或者比如我们通过 http 模块创建一个 HTTP 服务: 此处的 re
2017-01-27T14:12:00Z
2017-01-27T14:12:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】作为前端,我们常常会和 Stream 有着频繁的接触。比如使用 gulp 对项目进行构建的时候,我们会使用 gulp.src 接口将匹配到的文件转为 stream(流)的形式,再通过 .pipe() 接口对其进行链式加工处理; 或者比如我们通过 http 模块创建一个 HTTP 服务: 此处的 re <a href="https://www.cnblogs.com/vajoy/p/6349817.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6216590.html
支付宝AR抢红包?前端轻松就破解~ - vajoy
近期阿里搞了各LBS+AR实景的红包玩法,小伙伴们在公司里都玩疯了~ 有时候为了抢一个红包,会跑到另一个地方去拍照,虽然略麻烦,但整体的互动还是很有意思的。 不过对于机智的前端童鞋来说,只需要简单的一段代码就能破解AR红包(当然成功率也不是100%)。 破解原理见《上线仅一天:支付宝AR红包惨遭技术
2016-12-23T19:25:00Z
2016-12-23T19:25:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】近期阿里搞了各LBS+AR实景的红包玩法,小伙伴们在公司里都玩疯了~ 有时候为了抢一个红包,会跑到另一个地方去拍照,虽然略麻烦,但整体的互动还是很有意思的。 不过对于机智的前端童鞋来说,只需要简单的一段代码就能破解AR红包(当然成功率也不是100%)。 破解原理见《上线仅一天:支付宝AR红包惨遭技术 <a href="https://www.cnblogs.com/vajoy/p/6216590.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6092240.html
腾讯云上免费部署HTTPS - vajoy
接上篇《腾讯云下安装 nodejs + 实现 Nginx 反向代理》,想从头一步到位的同学建议从上篇文章开始阅读。本文将继续介绍如何通过 Nginx 免费部署HTTPS。 留意下,这里的“免费”指的是HTTPS证书的获取,至于域名还是需要额外购买(其实域名真心很便宜了)。 笔者在腾讯云上购买了 va
2016-11-23T08:20:00Z
2016-11-23T08:20:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】接上篇《腾讯云下安装 nodejs + 实现 Nginx 反向代理》,想从头一步到位的同学建议从上篇文章开始阅读。本文将继续介绍如何通过 Nginx 免费部署HTTPS。 留意下,这里的“免费”指的是HTTPS证书的获取,至于域名还是需要额外购买(其实域名真心很便宜了)。 笔者在腾讯云上购买了 va <a href="https://www.cnblogs.com/vajoy/p/6092240.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/6084079.html
腾讯云下安装 nodejs + 实现 Nginx 反向代理 - vajoy
本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署。 一. 新版 nodejs 安装 这里强烈推荐使用 nvm (Nod
2016-11-21T17:15:00Z
2016-11-21T17:15:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理。 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑,可以按本文的步骤进行安装部署。 一. 新版 nodejs 安装 这里强烈推荐使用 nvm (Nod <a href="https://www.cnblogs.com/vajoy/p/6084079.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5748815.html
从零开始,DIY一个jQuery(3) - vajoy
在前两章,为了方便调试,我们写了一个非常简单的 jQuery.fn.init 方法: 因此我们在 demo 里执行 $('div') 时可以取得这么一个类数组对象: 在完整的 jQuery 中通过 $(selector) 的形式获取的对象也基本如此 —— 它是一个对象而非数组,但可以通过下标(如 $
2016-08-14T17:44:00Z
2016-08-14T17:44:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】在前两章,为了方便调试,我们写了一个非常简单的 jQuery.fn.init 方法: 因此我们在 demo 里执行 $('div') 时可以取得这么一个类数组对象: 在完整的 jQuery 中通过 $(selector) 的形式获取的对象也基本如此 —— 它是一个对象而非数组,但可以通过下标(如 $ <a href="https://www.cnblogs.com/vajoy/p/5748815.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5728755.html
从零开始,DIY一个jQuery(2) - vajoy
在上篇文章我们简单实现了一个 jQuery 的基础结构,不过为了顺应潮流,这次咱把它改为模块化的写法,此举得以有效提升项目的可维护性,因此在后续也将以模块化形式进行持续开发。 模块化开发和编译需要用上 ES6 和 rollup,具体原因和使用方法请参照我之前的《冗余代码都走开——前端模块打包利器 R
2016-08-02T15:02:00Z
2016-08-02T15:02:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】在上篇文章我们简单实现了一个 jQuery 的基础结构,不过为了顺应潮流,这次咱把它改为模块化的写法,此举得以有效提升项目的可维护性,因此在后续也将以模块化形式进行持续开发。 模块化开发和编译需要用上 ES6 和 rollup,具体原因和使用方法请参照我之前的《冗余代码都走开——前端模块打包利器 R <a href="https://www.cnblogs.com/vajoy/p/5728755.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5510743.html
从零开始,DIY一个jQuery(1) - vajoy
从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅途,在整个系列的实践中,我们会把 jQuery 的主要功能模块都了解和实现一遍。 这会是一段很长的历程,但也会很有意思 —— 作为前端领域的经典之作,jQuery 里有着太多奇思妙想,如果能够深入理解它,对于我们稳固js基础、提升前端大法技
2016-07-30T18:47:00Z
2016-07-30T18:47:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】从本篇开始会陪大家一起从零开始走一遍 jQuery 的奇妙旅途,在整个系列的实践中,我们会把 jQuery 的主要功能模块都了解和实现一遍。 这会是一段很长的历程,但也会很有意思 —— 作为前端领域的经典之作,jQuery 里有着太多奇思妙想,如果能够深入理解它,对于我们稳固js基础、提升前端大法技 <a href="https://www.cnblogs.com/vajoy/p/5510743.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5656439.html
来看看机智的前端童鞋怎么防盗 - vajoy
很多开发的童鞋都是只身混江湖、夜宿城中村,如果居住的地方安保欠缺,那么出门在外难免担心屋里的财产安全。 事实上世面上有很多高大上的防盗设备,但对于机智的前端童鞋来说,只要有一台附带摄像头的电脑,就可以简单地实现一个防盗监控系统~ 纯 JS 的“防盗”能力很大程度借助于 H5 canvas 的力量,且
2016-07-10T04:19:00Z
2016-07-10T04:19:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】很多开发的童鞋都是只身混江湖、夜宿城中村,如果居住的地方安保欠缺,那么出门在外难免担心屋里的财产安全。 事实上世面上有很多高大上的防盗设备,但对于机智的前端童鞋来说,只要有一台附带摄像头的电脑,就可以简单地实现一个防盗监控系统~ 纯 JS 的“防盗”能力很大程度借助于 H5 canvas 的力量,且 <a href="https://www.cnblogs.com/vajoy/p/5656439.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5522114.html
FastClick 填坑及源码解析 - vajoy
最近产品妹子提出了一个体验issue —— 用 iOS 在手Q阅读书友交流区发表书评时,光标点击总是不好定位到正确的位置: 如上图,具体表现是较快点击时,光标总会跳到 textarea 内容的尾部。只有当点击停留时间较久一点(比如超过150ms)才能把光标正常定位到正确的位置。 一开始我以为是 iO
2016-05-24T15:26:00Z
2016-05-24T15:26:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】最近产品妹子提出了一个体验issue —— 用 iOS 在手Q阅读书友交流区发表书评时,光标点击总是不好定位到正确的位置: 如上图,具体表现是较快点击时,光标总会跳到 textarea 内容的尾部。只有当点击停留时间较久一点(比如超过150ms)才能把光标正常定位到正确的位置。 一开始我以为是 iO <a href="https://www.cnblogs.com/vajoy/p/5522114.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5518442.html
冗余代码都走开——前端模块打包利器 Rollup.js 入门 - vajoy
之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化。 殊不知在 webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的,导致打出来的 bundle 文件大小难免略有臃肿。 今天则向大家介绍一个当红炸子鸡
2016-05-22T18:17:00Z
2016-05-22T18:17:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化。 殊不知在 webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的,导致打出来的 bundle 文件大小难免略有臃肿。 今天则向大家介绍一个当红炸子鸡 <a href="https://www.cnblogs.com/vajoy/p/5518442.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5471308.html
几款主流 NoSql 数据库的对比 - vajoy
最近小组准备启动一个 node 开源项目,从前端亲和力、大数据下的IO性能、可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型。 我们最终把选项范围缩窄在 HBase、Redis、MongoDB、Couchbase、LevelDB 五款较主流的数据库产品中,本文将主要对
2016-05-11T13:36:00Z
2016-05-11T13:36:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】最近小组准备启动一个 node 开源项目,从前端亲和力、大数据下的IO性能、可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型。 我们最终把选项范围缩窄在 HBase、Redis、MongoDB、Couchbase、LevelDB 五款较主流的数据库产品中,本文将主要对 <a href="https://www.cnblogs.com/vajoy/p/5471308.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5425836.html
ReactNative入门 —— 动画篇(下) - vajoy
在上篇动画入门文章中我们了解了在 React Native 中简单的动画的实现方式,本篇将作为上篇的延续,介绍如何使用 Animated 实现一些比较复杂的动画。 动画组合 在 Animated 中提供了一些有趣的API方法来轻松地按我们的需求实现组合动画,它们分别是 Animated.parall
2016-04-23T16:35:00Z
2016-04-23T16:35:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】在上篇动画入门文章中我们了解了在 React Native 中简单的动画的实现方式,本篇将作为上篇的延续,介绍如何使用 Animated 实现一些比较复杂的动画。 动画组合 在 Animated 中提供了一些有趣的API方法来轻松地按我们的需求实现组合动画,它们分别是 Animated.parall <a href="https://www.cnblogs.com/vajoy/p/5425836.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5341664.html
浅谈浏览器http的缓存机制 - vajoy
针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题。 之所以还写一篇这样的文章,是因为近期都在搞新技术,想“回归”下基础,也希望尽量总结的更详尽些。 那么你是否还需要阅读本篇文章呢?可以试着回答下面这个问题: 我们在访问百度首页
2016-04-04T07:10:00Z
2016-04-04T07:10:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】针对浏览器的http缓存的分析也算是老生常谈了,每隔一段时间就会冒出一篇不错的文章,其原理也是各大公司面试时几乎必考的问题。 之所以还写一篇这样的文章,是因为近期都在搞新技术,想“回归”下基础,也希望尽量总结的更详尽些。 那么你是否还需要阅读本篇文章呢?可以试着回答下面这个问题: 我们在访问百度首页 <a href="https://www.cnblogs.com/vajoy/p/5341664.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5299315.html
ReactNative入门 —— 动画篇(上) - vajoy
在不使用任何RN动画相关API的时候,我们会想到一种非常粗暴的方式来实现我们希望的动画效果——通过修改state来不断得改变视图上的样式。 我们来个简单的示例: 效果如下: 这种方式实现的动画存在两大问题: 1. 将频繁地销毁、重绘视图来实现动画效果,性能体验很糟糕,常规表现为内存花销大且动画卡顿明
2016-03-26T15:22:00Z
2016-03-26T15:22:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】在不使用任何RN动画相关API的时候,我们会想到一种非常粗暴的方式来实现我们希望的动画效果——通过修改state来不断得改变视图上的样式。 我们来个简单的示例: 效果如下: 这种方式实现的动画存在两大问题: 1. 将频繁地销毁、重绘视图来实现动画效果,性能体验很糟糕,常规表现为内存花销大且动画卡顿明 <a href="https://www.cnblogs.com/vajoy/p/5299315.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5243717.html
ReactNative入门(安卓)——API(下) - vajoy
LayoutAnimation - layout动画 当布局发生改变时的动画模块,它有两个方法: 1. 最常用的方法是 LayoutAnimation.configureNext(conf<Object>),用于设置布局变化时的动画类型,在调用 setState 之前使用。 其中 conf 参数格式
2016-03-13T04:35:00Z
2016-03-13T04:35:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】LayoutAnimation - layout动画 当布局发生改变时的动画模块,它有两个方法: 1. 最常用的方法是 LayoutAnimation.configureNext(conf<Object>),用于设置布局变化时的动画类型,在调用 setState 之前使用。 其中 conf 参数格式 <a href="https://www.cnblogs.com/vajoy/p/5243717.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/vajoy/p/5225843.html
小小改动帮你减少bundle.js文件体积(翻译) - vajoy
我已经从事过好多年的SPA开发工作,我发现很多的程序猿都从来不往 bundle.js 文件的体积上动脑筋,这让我有点懵逼。 “安心洗路,等俺把代码混淆压缩后就一切666了”,若是有人这么说,我会翻白眼。 其实当我们压缩 bundle.js 的时候,我们可能会凭空折腾出一个庞大的应用,导致其加载时间抑
2016-02-29T00:39:00Z
2016-02-29T00:39:00Z
vajoy
https://www.cnblogs.com/vajoy/
【摘要】我已经从事过好多年的SPA开发工作,我发现很多的程序猿都从来不往 bundle.js 文件的体积上动脑筋,这让我有点懵逼。 “安心洗路,等俺把代码混淆压缩后就一切666了”,若是有人这么说,我会翻白眼。 其实当我们压缩 bundle.js 的时候,我们可能会凭空折腾出一个庞大的应用,导致其加载时间抑 <a href="https://www.cnblogs.com/vajoy/p/5225843.html" target="_blank">阅读全文</a>