随笔分类 - Javascript
摘要:我们在上一篇介绍了JS Object的实现,这一篇将进一步介绍JS Array的实现。 在此之前,笔者将Chromium升级到了最新版本60,上一次是在元旦的时候下的57,而当前最新发布的稳定版本是57。57是三月上旬发布的,所以Chrome发布一个大版本至少用了两、三个月的时间。Chrome 60
阅读全文
摘要:什么是页面卡顿?如下: 当拖动页面或者滚动的时候页面一卡一卡的,看起来不连贯,我们就说页面卡了,这是一种非常不友好的体验,怎么衡量页面卡顿的情况呢? 1. 失帧和帧率FPS 如果你家里买了电视盒的话,在设置里面应该会有一个输出设置: 上面选中的60Hz就是帧率(frame per second),即
阅读全文
摘要:在上一篇《从Chrome源码看浏览器如何构建DOM树》介绍了blink如何创建一棵DOM树,在这一篇将介绍事件机制。 上一篇还有一个地方未提及,那就是在构建完DOM之后,浏览器将会触发DOMContentLoaded事件,这个事件是在处理tokens的时候遇到EndOfFile标志符时触发的: C+
阅读全文
摘要:什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天。由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: 1. 避免全局耦合 这应该是比较常见的耦合。全局耦合就是几个类、模块共用了全局变量或者全局数据结构,
阅读全文
摘要:在上一篇《webpack从入门到上线》介绍了wepack的配置和相关的概念,这一篇介绍怎样写一个webpack loader. 通过写一个js的html模板为例子。 上篇文章已提及,loader加载器就是对各种非正常资源的解析,转化成浏览器可以识别的js/css文件等,甚至可以说loader就是一个
阅读全文
摘要:webpack是目前一个很热门的前端打包工具,官网说得很清楚,webpack的出现就是要把requirejs干掉。同时它还提供了十分便利的本地开发的环境。网上并不容易找到一个讲解得比较详细完整的教程,本文结合实践经验,总结一套可用的开发和上线的配置和流程。 首先,Require JS有什么问题 Re
阅读全文
摘要:我们经常使用地图查位置、看公交、看街景,同时地图还开放第三方的API给开发者。利用这些API进行地图的个性化的展示和控制,例如北京被水淹了,开发一个网页显示北京被淹的地图,地图上面标志被水淹的位置、严重程度,或者我是交警,想要在地图上标志发生车祸、被交通管制的路段,甚至是利用地图的街景,控制街景的位
阅读全文
摘要:比较深入全面地介绍了什么是同源策略,同源策略的影响以及如何绕过同源策略进行CSRF攻击。同时跨域请求的实际应用,通过案例分析跨域请求的几种办法:cors、jsonp、子域域父域、iframe跨父域、postMessage实现frame和父窗口的通信
阅读全文
摘要:写了一个跨浏览器的html5表单验证插件,能够支持老的浏览器,并且统一错误文案提示的UI,提供了自定义文案、自定义样式的功能,支持多种错误类型的检验,同时支持自定义检验和异步检验。已经在生产环境得到很好的尝试
阅读全文
摘要:文章讨论了3种办法实现无刷新上传文件,分别是使用iframe、FormData和FileReader,支持性最好是的iframe,但是从体验的效果来看FormData和FileReader更好,因为这两者不用生成一个无用的DOM再删除,其中FormData最简单,而FileReader更加灵活。
阅读全文
摘要:JS虽然是一个面向对象的语言,但是不是典型的面向对象语言。Java/C++的面向对象是object - class的关系,而JS是object - object的关系,中间通过原型prototype连接,父类和子类形成一条原型链。本文先分析JS的对象的封装,再探讨正确实现继承的方式,最后对ES6新引入的类class关键字作一个简单的说明。
阅读全文