深蓝的天空

一只切图喵的碎碎念

Vue.js & checked 半选

引子

上周项目中有一常见的场景需求:一组 checkbox,然后一 checkbox 控制该组的全选/全不选状态,如该组未全选中需展示成半选中的状态。可能我描述的不够清楚,反正就是如下的样子(我用 jQuery 写了个 demo)。实现起来并不复杂,为了保持跨浏览器样式一致性,之前是其他 DOM 元素去模拟 checkbox,半选状态是用添加特殊的 className 然后去实现对应的样式。为了提升效率(其实是懒),这次我直接用了系统控件。结果问题来了,原生控件半选模式怎么展示?学了这么多年 HTML,抓耳挠腮貌似没有表示 checkbox 半选状态的属性。

Read More »

TypeScript Learning

TypeScript 是 JavaScript 类型的超集,它可以编译成纯 JavaScript。
typescript-learning
Read More »

Mocha learning

mocha 是一款测试框架,支持node端与浏览器端的测试框架。

mocha

Read More »

Web Storage Learning

Cookies 作为客户端与服务器交互的通道,保持客户端状态,本来就不是设计同来做前端本地存储的,所以其用于做前端本地存储本身缺陷挺多的:

  1. Cookie 会被附加在每个 HTTP 请求中,所以无形中增加了流量。
  2. 由于在 HTTP 请求中的 Cookie 是明文传递的,所以安全性成问题,除非用 HTTPS。
  3. Cookie 的大小限制在 4KB 左右,对于复杂的存储需求来说是不够用的。

WebStorage 是 HTML5 新增的本地存储解决方案之一,其分为 localStorage 和 sessionStorage,结合当前的浏览器份额来看,兼容性问题已经很小了。

Read More »

Yarn Learning

感谢前端造轮子的能力,npm 已经是世界上最大的软件注册表,不过其也有遭人诟病的缺陷,针对这些缺陷,yarn 便出现了。

yarn 是 Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具,其具有如下优势:
Read More »

前端获取referrer可行性

referrer 定义

HTTP来源地址(referer,或HTTP referer)是HTTP表头的一个字段,用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着HTTP来源地址,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。via Wiki

Read More »

JavaScript 闭包

本文来自《精通JavaScript》一书
在本书中,我们看到过很多以函数作为参数的jQuery方法。在我们所举的例子中,也曾经反复的创建、调用和传递函数。虽然我们平时只需粗略地了解JavaScript的内部工作机制,就可以这样使用函数,但是,如果缺乏对这个语言特性深入理解,那么这些操作的副作用也会时不时给我们带来意想不到的结果。在本附录中,我们再额外探讨一种深奥(也很流行)的函数类型,这就是闭包。

1 内部函数

能够跻身支持内部函数声明的编程语言行列,对JavaScript来说应该算是一种幸运。许多传统的编程语言(例如C),都会把全部函数集中在顶级作用域中。而支持内部函数的语言,则允许开发者在必要的地方集合小型实用函数,以避免对命名空间的干扰。
Read More »