小虾虎鱼

小虾虎鱼

webpack2自定义插件修改输出的内容

前几年火爆的seajs如今慢慢的要被淘汰了,随着webpack出来后,seajs和requirejs都逐渐的被取代了。 最近一个老的项目要增加一个比较复杂的功能,如果按照以前的写法,这个功能写完后这个js文件应该有过千行代码(曾经很以为荣的写过千行代码的js文件,现在回头看看就是挖坑)。为了使代码更容易阅读,就用上了webpack。 由于项目是前两年用seajs写的,那么打包出来的内容必须是这样的:

define(function(require,exports,module){
    /// ... 代码
});

Knockout中ko.utils中处理数组的方法集合

每一套框架基本上都会有一个工具类,如:Vue中的Vue.utilKnockout中的ko.utilsjQuery直接将一些工具类放到了$里面,如果你还需要更多的工具类可以试试lodash。本文只介绍一下Knockout中ko.utils中处理数组的一些方法。

手机端网页控制声音的播放

HTML5中新增的Audio标签给音频的播放控制带来了不少的方便,该标签具有很多属性事件。但不好的消息是在现在的移动设备中基本上都无法直接自动播放声音或者控制声音(为什么会这样?为了省电?为了省流量?不知道)。从一些资料中得到,如果需要播放声音则需要通过用户的交互来获得播放声音的权限,问题的关键就是交互了。

 2016/12/14 22:18 阅读全文 »

使用async和await控制爬虫执行

为了解决js的回调嵌套问题(金字塔),ES6新增了PromiseGenerator来解决此问题。但我个人觉得Promise需要不断then,虽然没有出现金字塔现象,但总觉得还不够直观,而Generator也需要next依然不够直观易懂。随着Nodejs 7.0的发布,是时候玩玩Async函数了。 今天刚好用Async函数来做了一个爬虫,个人觉得代码的易读性比PromiseGenerator好。如果你还不会Async,可以看看阮一峰写的文章

 2016/11/09 22:34 阅读全文 »

IE在iframe中后退无法触发onhashchange事件

url中的hash最常用到的地方就是锚点,随着单页面应用(SPA)的盛行,利用浏览器的前进后退能触发onhashchange事件且不刷新页面的特性,hash也被用做了路由,当然也可使用HTML5的History来实现,但为了兼容低版本IE浏览器很多时候还是选择了hash。

 2016/11/01 12:53 阅读全文 »