Taobao FED

主页

ES7 Decorator 装饰者模式

1、装饰模式设计模式大家都有了解,网上有很多系列教程。 这里只分享 装饰者模式 以及如何使用 ES7 的 decorator 概念。 1.1、装饰模式 v.s. 适配器模式装饰模式和适配器模式都是 包装模式 (Wrapper Pattern),它们都是通过封装其他对象达到设计的目的的,但是它们的形态有很大区别。 适配器模式我们使用的场景比较多,比如连接不同数据库的情况,你需要包装现有的模块接口

在 iOS 模拟器中调试 Web 页面

双十一大家“买买买”了吗?我猜你们要么是躺在沙发上,要么是躲在被窝里用手机和 Pad 下的单,因为我就是这么干的。当然我也不是瞎猜,天猫官方微博公布的数据为证:无线端交易额占比一路保持在 70% 以上,最后定格在 68%(据说峰值数据更是丧心病狂,具体数据未公布,大家猜猜吧)。 “Mobile First” 真的已经不是喊喊口号而已!部分业务形态甚至直接 “Mobile Only” 了。当然所谓

HTML 压缩服务治理

缘由笔者最近在研究如何实现页面 HTML 及内联 JS/CSS 的实时压缩功能。 首先笔者尝试了在前端模块中扫描内联的 JS/CSS 并压缩,这样还可以集成至前端模块的上传工具中。观察了一段时间发现这样无法处理模板中的 JS/CSS,造成很多遗漏的 JS/CSS 不能压缩。 于是笔者转而考虑对页面进行实时 HTML 压缩,这次考察了坑过许多 Node.js 开发者的 html-minifier

移动端开发小记 - Flexbox

在开发移动端页面的时候,出去布局方便和减少代码量的考虑,使用了 Flexbox 的布局方式,在其中也遇到了一些问题,简单记录下。 什么是 Flexbox说到 Flexbox,大家应该都不陌生,网络上也有 N 多的教程。但是在这里还是简单说一下,就当回顾知识了吧。 CSS 2.1 定义了四种布局模式 ― 由一个盒与其兄弟、祖先盒的关系决定其尺寸与位置的算法: 块布局 ― 为了呈现文档而设计出来的

当我们谈论 cluster 时我们在谈论什么(下)

上篇文章讲解了 Node.js 中多进程部署时遇到的各种问题,那么实际的线上项目中到底是如何利用多进程,如何保障各个 worker 进程稳定性的呢,又是如何利用 cluster 模块 fork 子进程,父子进程间又是如何实现通信的呢?本篇就来一一揭晓。 负载均衡回忆一下上篇中提到的最初 Node.js 多进程模型,多个进程绑定同一端口,相互竞争 accpet 新到来的连接。由于无法控制一个新的连

如何评价页面的性能

引言前端页面的性能一直都是一个热议的话题,从老早的“军规”开始我们就一直在关注页面的性能问题。 在前面巨人们的身后每个人也有自己的一些页面性能的经验,本文主要是介绍如何评估页面加载完成之后的性能。 浏览器如何渲染一个页面先附上一张图片: 这是在网上找的一张图,虽然是用来描述 performance 的 API 但是也很好的描述了浏览器是怎么处理一个页面渲染的。 这是我们在 PC 时代考虑的浏览

JSTracker:异常数据处理

上一篇:JSTracker 之前端异常数据采集 前文已经解决了采集数据的问题了,但是采集到的数据不做分析是体现不出价值的。接下来会介绍 JSTracker 的数据处理部分。 大概会按照以下目录: 服务端如何接受数据 数据存储 报警 定位 JSTracker的系统流程图: 服务端如何接受数据日志上报需要服务端提供一个 http 接口,将前端采集到的数据统一的发回服务端。 需要注意的是如果你用

Node.js 常见网络错误信息

1.介绍熟悉 Node.js 的同学一定见过 ETIMEDOUT、EADDRINUSE 等错误提示,那么这些错误信息到底是什么呢?答案其实很简单,因为 Node.js 底层使用的是 glibc 库,这些错误信息都是 glibc 库在 socket 连接时使用的 connect 函数中定义的错误类型,当然,v8在使用glibc库时也会加入一些自定义的错误类型,但许多错误情况还是和glibc中的定义

rem 产生的小数像素问题

由于日常需求以无线居多,所以可以在业务中做一些尝试,如 rem,刚接触这个特性的时候,曾经一度爱不释手,仿佛在无线开发的坎坷路上寻找到一条捷径。然而随着使用范围的扩大,慢慢的发现了一些使用 rem 带来的问题。 rem关于 rem 这个单位的介绍,在此就不赘述,有兴趣的同学可以阅读一丝的《响应式十日谈第一日:使用 rem 设置文字大小》,文章对 rem 进行了详细的介绍。 用途在无线开发中,响应

当我们谈论 cluster 时我们在谈论什么(上)

Node.js 诞生之初就遭到不少这样的吐槽,当然这些都早已不是问题了。 1、可靠性低。2、单进程,单线程,只支持单核 CPU,不能充分的利用多核 CPU 服务器。一旦这个进程崩掉,那么整个 web 服务就崩掉了。 回想以前用 php 开发 web 服务器的时候,每个 request 都在单独的线程中处理,即使某一个请求发生很严重的错误也不会影响到其它请求。Node.js 会在一个线程中处理