webpack插件开发及修改源码的几种方式

前言

webpack是我们平时工作中必不可少的工具,难免有时候需要对webpack编译的代码进行个性化处理操作,那么需要通过webpack插件或者修改其代码的方式来完成,本篇文章着重介绍webpack插件开发及修改源码的一些方式。很久之前我也写过webpack相关文章,例如:webpack前端技术小结,更多webpack知识,欢迎关注haorooms前端博客

插件使用

我们工作中,肯定用过webpack插件,用法如下:

js双击会进入2次单机,单双击冲突,避免双击进入单机2次方案

前言

js双击会进入2次单机,单双击冲突,避免双击进入单机2次方案。这个问题是很常见的问题,解决也很简单。

思路

只需要在双击的时候把单机事件清理掉就可以了,不过单机要延迟,这个延迟事件是多久呢?经过测试200毫秒有时候还是会双击触发单机,250ms刚刚好。

代码

XMLHttpRequest.responseURL获取302重定向后的地址

前言

需求是请求一个接口,这个接口是一个302重定向地址,拿到重定向地址后,解析里面的参数,然后做一些逻辑操作,那么前端如何获取302重定向后的地址呢?

传统ajax方式

之前有写文章封装一个原生js的ajax请求,支持IE9CORS跨域请求,采用这种ajax请求的方式请求302地址,或者采用axiso,jquery等ajax请求302地址,都会返回空,并且直接跳转302之后的页面。这个不是我们想要达到的,那么有什么办法可以拿到302重定向的地址,而不跳转呢?

js一些操作运算符

前言

js的一些运算符很多,之前有文章提过。例如如下:

js整数的操作

使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用。性能比较见此。

var foo = (12.4 / 4.13) | 0;//结果为3
var bar = ~~(12.4 / 4.13);//结果为3

还有一个小技巧,就是!!2个叹号,可以将一个值,快速转化为布尔值。你可以测试一下!

var eee="eee";
alert(!!eee)

这些都是一些运算符,具体请看javascript实用技巧,js小知识js运算符单竖杠“|”

今天再补充几个。

逗号运算符

decodeURIComponent在解析浏览器参数中含有%时报错处理

前言

之前有篇文章,介绍了encodeURIComponent 的一些用法,encodeURIComponent是对浏览器参数编码,decodeURIComponent是对齐进行解码。最近在使用decodeURIComponent的时候,发现浏览器参数中含有特殊符号%,会导致decodeURIComponent等解码报错。今天就简单分享一下如何处理这个问题。

现象阐述

例如如下:

https://www.haorooms.com/?param=haorooms%E5%8D%9A%E5%AE%A2%E5%A5%BD%E8%AF%84%E7%8E%8790%

enter image description here