前端性能监控:window.performance 发表于 2016-04-23 window.performance 是W3C性能小组引入的新的API,目前IE9以上的浏览器都支持。一个performance对象的完整结构如下图所示: Window.performance虽然叫 Timing API 但是用起来却是 window.performance1234// 兼容性写法c ... 阅读全文 »
eval() 和 new Function() 执行JS代码 发表于 2016-02-28 DEMO1234567891011var a = 'global scope'function b(){ var a = 'local scope' eval('console.log(a)') //local sco ... 阅读全文 »
JS常用设计模式 发表于 2016-02-25 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用。 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的脉络: 设计与模式 5 大设计原则 7 种常见的设计模式 一句话解释含义 列举生活中的场景 、 业务代码场景 js 代码演示 设计与模式 ... 阅读全文 »
防抖和节流原理分析 发表于 2016-02-11 窗口的resize、scroll、输入框内容校验等操作时,如果这些操作处理函数是较为复杂或页面频繁重渲染等操作时,在这种情况下如果事件触发的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少触发的频率,同时又不影响实际 ... 阅读全文 »
defer和async的区别 发表于 2016-01-25 先来试个一句话解释仨,当浏览器碰到 script 脚本的时候: <script src=""></script> 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说 ... 阅读全文 »
FastClick-源码解析 发表于 2016-01-22 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798 ... 阅读全文 »
浅说 XSS 和 CSRF 发表于 2015-09-29 在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式。本文将会简单介绍 XSS 和 CSRF 的攻防问题。 声明:本文的示例仅用于演示相关的攻击原理 XSSXSS,即 Cross Site Script,中译是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading ... 阅读全文 »
前端常见跨域解决方案 发表于 2015-09-22 什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中b ... 阅读全文 »
JavaScript 中的 this ! 发表于 2015-08-31 在 js 中,this 这个上下文总是变化莫测,很多时候出现 bug 总是一头雾水,其实,只要分清楚不同的情况下如何执行就 ok 了。 全局执行首先,我们在全局环境中看看它的 this 是什么: first. 浏览器: console.log(this); // Window {speechSy ... 阅读全文 »
JS中的this的七种使用场景 发表于 2015-08-30 Javascript 中的 this,有时候让人迷惑,所以总结了一下关于this指向的问题。 在函数中 this 到底取何值,是在函数真正被调用执行的时候确定下来的,函数定义的时候确定不了。 因为 this 的取值是函数执行上下文(context)的一部分,每次调用函数,都会产生一个新的执行上下文 ... 阅读全文 »