产品优化之AB测试

一款好的互联网产品的诞生,绝不是开发完、发布到上线就结束了。你必须得加入埋点跟踪,进行后续数据统计,不断维护,细心打磨,小心的版本迭代等。

为了给用户带来更好的体验,你希望在页面上新增一个功能,而该功能可以通过A、B两种(也可能多种)展示方案来呈现,但你们不确定哪种方案更能符合预期。此时,产品和设计便产生了分歧。

全文»

webpack处理UMD及ES6的类

我们在开发一个插件时,通常希望它既可以被服务端引用,也能被客户端浏览器使用,即适用多个平台。于是,在模块加载的处理上,我们通常会采用 UMD(Universal Module Definition)的写法。

所谓的 UMD,主要是针对 CommonJS 或 AMD 规范加载模块的差异,而特意封装的一种通用引入模块的解决方案。

全文»

探究浏览器复制

前两天收到公司安全组反馈的邮件,说他们在扫描官网某个页面时,发现跨站脚本攻击(XSS漏洞)。经排查,发现是此页面包含了复制粘贴功能,为了兼容各大浏览器,该复制粘贴功能是用开源项目 zeroclipboard 实现的,初步怀疑该 XSS漏洞 是由 zeroclipboard 引发的。

在查阅了相关资料和翻看 zeroclipboard 项目源码之后,果然,在2014年初,github上一位名为masatokinugawa的用户给 zeroclipboard 项目组的开发人员发了一封邮件,描述了此安全漏洞。

全文»

Javascript 自定义事件

作为异步驱动编程模型,事件无疑是JavaScript不可或许的部分。

在JavaScript所定义的事件中,它们被分为多种类型。有 表单事件(focus、blur、submit等)、window事件(load、unload、resize等)、鼠标事件(mousedown、mousmove、mousup等),键盘类型(keydown、keyup等)。

针对移动端,还有触摸类型,比如 touchstart、touchmove、touchend、touchcancel 等。另外,HTML5还有各类API事件,比如 dragstart、drag、dragend 等。

全文»

使用 JSON Server 构建数据接口

目前来说,前后端分离 是web开发的主流模式。前端负责页面制作、交互实现,后端负责数据API的开发。两者并行处理,各司其职,项目开发完毕后一起联调,出了问题也能快速定位。

而通常情况下,后端真实数据的研发往往滞后于UI界面的开发。所以,在项目开始前,前后端会约定好数据格式,这样,前端就可以先利用mock数据进行界面开发。一般的做法,是在本地新建多个json文件,然后利用ajax请求相应的文件,待后端数据接口开发完毕,直接将json地址换成真实接口地址即可。

全文»