<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Elephant_H的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Elephant_H</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Elephant_H]]></copyright><item><title><![CDATA[合理使用构造函数对性能带来的优化]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/109334750</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/109334750</guid><author>Elephant_H</author><pubDate>Wed, 28 Oct 2020 16:06:07 +0800</pubDate><description><![CDATA[如果你非常注重性能，那么下面的代码可能对你很重要。
function Article() { 
	this.title = 'Inauguration Ceremony Features Kazoo Band'; 
}
let a1 = new Article();
let a2 = new Article();

构造函数跟性能有什么关系呢？这就要从js引擎（Chrome V8）的工作原理说起了——

使用隐藏类HiddenClasses

运行期间，V8会将创建的对象与隐藏类关联起来，以跟踪它们的属性特]]></description><category></category></item><item><title><![CDATA[Vue3自定义指令初探以及插件的使用]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/108884489</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/108884489</guid><author>Elephant_H</author><pubDate>Wed, 30 Sep 2020 17:17:40 +0800</pubDate><description><![CDATA[背景
在我司的项目中，权限管理方面涉及到了Vue自定义指令功能，也使用了一些以自定义指令形式调用的插件。Vue3.0发布后，不再直接暴露一个Vue类而且directive()方法注册自定义指令的hooks也有所改变，意味着2.x版本的Vue.use()方法不再可行，同时在注册组件时各个方法挂载在hooks上的位置也要做调整。
刚好最近有空，就来探究一下组件在Vue3中能否正常运行，如果不能，要怎么做调整。

阅读前提

一定的Vue插件开发知识
对Vue工作原理有所了解


准备工作
1.首先更新一下vue]]></description><category></category></item><item><title><![CDATA[js kmp之部分匹配表解法]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/105393667</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/105393667</guid><author>Elephant_H</author><pubDate>Wed, 08 Apr 2020 19:11:34 +0800</pubDate><description><![CDATA[（本文是个人理解+实现，留作备忘，如有问题欢迎讨论）
较之暴力匹配，kmp的优点在于对源字符串(待匹配的母串)遍历时省略掉了部分循环，在某些情景下可以带来可观的性能提升。而部分匹配表解法的核心是通过对比模式串的前缀和后缀(定义不再赘述)得到一个部分匹配表数组。
获取部分匹配表:
function getPartMatch(str) {
    let result = [0],
        l...]]></description><category></category></item><item><title><![CDATA[信息系统项目管理师考试有感]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/103679102</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/103679102</guid><author>Elephant_H</author><pubDate>Tue, 24 Dec 2019 11:59:59 +0800</pubDate><description><![CDATA[先上成绩

论文险过，案例富余，选择正常发挥

感想
高项能算是软考高级职称中“最简单”的一个了，因为其内容多为偏理论性的管理知识，不像系统分析师、系统架构师等，需要比较深厚的专业知识。所以报考的人数也是逐年激增，2019年官方给出的数据，报考人数比2018年增长了50%，同时考题难度也有了很大改变，通过做往年的真题与今年的试题可以感受到：(例如计算题)早年基本上大部分是很简单的PV、EV、AC、...]]></description><category></category></item><item><title><![CDATA[nginx启动失败之nginx: [emerg] invalid number of arguments in "root" directive in nginx/nginx.conf:41]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/84144444</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/84144444</guid><author>Elephant_H</author><pubDate>Fri, 16 Nov 2018 19:10:26 +0800</pubDate><description><![CDATA[出现这个报错说明root的参数不对，网上目前有以下几种答案：

句尾忘记加分号
路径中文件名使用了中文
路径中有空格

我再来补充一种：路径中的斜杠与反斜杠问题。

本来我的路径是这样的
location / {
    root   F:\2018;
    index  index.html;
}

没有报错，后来我想把根目录具体到一个项目，改成了这样
location / {
    roo...]]></description><category></category></item><item><title><![CDATA[初级前端的求生之路（遇到问题时的一些思路）]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/83421621</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/83421621</guid><author>Elephant_H</author><pubDate>Sat, 27 Oct 2018 00:40:54 +0800</pubDate><description><![CDATA[前言

一晃就快半年没写什么东西了，在这段时间里，我经历了妻子从孕晚期到临盆，孩子的满月，两代人的磨合…
好在，妻子是通情达理的妻子，长辈也是明辨是非的长辈，一家虽说不上其乐融融，相处也倒算得上融洽。
工作方面，托领导的福，知道我的情况后，一直没给我安排什么任务，所以也一直没什么值得让我专门抽时间坐下来记录记录的东西。
在家里情况趋于稳定的过程当中，我也开始陆陆续续接手一些项目。今天想说的事情，就...]]></description><category></category></item><item><title><![CDATA[在swiper中使用长页面，以及嵌套多个swiper时滑动卡顿、无法滑动的问题。]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/80856053</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/80856053</guid><author>Elephant_H</author><pubDate>Fri, 29 Jun 2018 14:15:23 +0800</pubDate><description><![CDATA[前言



一般而言，swiper的应用场景大多是两种：


满屏切换的H5页面
pc&amp;amp;amp;amp;amp;amp;amp;移动端各种样式的轮播图


但有的时候，面对奇怪的需求，我们需要改变，甚至让swiper实现一些无法实现的功能。 


需求



近期接到一个h5项目，主体头部是一个选项卡，对应两个子页面，每个子页面的第一屏为一个满屏的kv，监测到向下滑动时平滑过渡到第二屏，而第二屏是一个长页面。 


思路



...]]></description><category></category></item><item><title><![CDATA[canvas绘制的内容在高清屏中模糊以及错乱问题。]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/80393344</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/80393344</guid><author>Elephant_H</author><pubDate>Mon, 21 May 2018 15:54:45 +0800</pubDate><description><![CDATA[最近在做一个h5游戏的时候，用到了Phaser.js这个游戏引擎，可以将游戏的所有过程全部放在一个canvas里，在开发的过程中，发现正常切出来的图放在canvas里会变得模糊，网上有很多关于这个问题的文章，解决方案大致是使用phaser.js生成canvas标签时传进的height、width参数要在原先基础上乘以设备的dpr:

var game = new Phaser.Game(width...]]></description><category></category></item><item><title><![CDATA[gulp简易配置热更新+编译less+编译es6+压缩js、html]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/79384720</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/79384720</guid><author>Elephant_H</author><pubDate>Tue, 27 Feb 2018 10:30:28 +0800</pubDate><description><![CDATA[需要用到的npm包有：


gulp
browserSync
gulp-htmlmin
gulp-less
gulp-uglify
gulp-babel
babel-preset-es2015 



请自行百度安装 



参考如下目录结构



project
│   gulpfile.js
│
│   package.json
│
│   package-lock.json
│ 
└───n...]]></description><category></category></item><item><title><![CDATA[移动端h5开发,华为手机输入法键盘影响页面布局的问题。]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/79109595</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/79109595</guid><author>Elephant_H</author><pubDate>Fri, 19 Jan 2018 18:14:41 +0800</pubDate><description><![CDATA[在做移动端h5的时候，有些简单的页面，我们一般都会给body写上：



width:100%;
height:100%;

然后给一个满屏的背景图，简单方便的适应不同屏幕的手机。 
 
有时候为了采集用户信息，页面上会放置几个input框让用户填写，那么问题就来了。 
如图，一个100%布局的页面，上面有一个input 
 
 
 
在input没有获得焦点(即没有弹出输入法)的时候,我们的华为]]></description><category></category></item><item><title><![CDATA[方便易用的excel转json数据小工具]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/79005749</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/79005749</guid><author>Elephant_H</author><pubDate>Mon, 08 Jan 2018 18:06:31 +0800</pubDate><description><![CDATA[先上链接为敬(https://github.com/wyh369352887/pickExcel) 
 
近期有很多项目涉及到了大量的excel数据，其中也只有部分数据是有用的，网上找了很久没有合适的抓取工具，索性在一个前辈基础上(https://github.com/wwhgtt/excel)修改并增加了一些功能:


抓取整列数据
抓取整行数据
抓取符合某些条件的整列数据


 
目前只是初版]]></description><category></category></item><item><title><![CDATA[微信浏览器内兼容android iOS调取手机摄像头进行拍照、打水印、压缩、预览]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/78875754</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/78875754</guid><author>Elephant_H</author><pubDate>Fri, 22 Dec 2017 18:05:15 +0800</pubDate><description><![CDATA[实现这些功能使用了如下插件：
图片打水印：watermark.js(https://github.com/brianium/watermarkjs)
图片压缩：localResizeImg(https://github.com/think2011/localResizeIMG)
读取图片元数据：exif.js(https://github.com/exif-js/exif-js) html部分//调]]></description><category></category></item><item><title><![CDATA[移动端user-scalable=yes页面，旋转屏幕后重置缩放比例。]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/78674309</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/78674309</guid><author>Elephant_H</author><pubDate>Thu, 30 Nov 2017 11:36:02 +0800</pubDate><description><![CDATA[对于user-scalable=yes的页面，旋转屏幕页面重新渲染后，会出现initial-scale!=1的情况，项目需求用户旋转屏幕，初始缩放比例始终是100%。 
可监听页面的orientationchange事件，动态的给meta标签重新赋值达到效果:window.addEventListener("orientationchange",function(){
       var i =]]></description><category></category></item><item><title><![CDATA[自定义样式的单选、多选按钮逻辑]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/78562180</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/78562180</guid><author>Elephant_H</author><pubDate>Fri, 17 Nov 2017 15:42:27 +0800</pubDate><description><![CDATA[首选全局声明一个对象，用来储存所有题的答案var answerData = {
    'q1':'',
    'q2':''
}单选题dom结构：<div class="q1">
    <div class="qImg"></div>//选项是否被选中图片
    <div class="qBody">
        <div class="question">请问您的性别是?</div>]]></description><category></category></item><item><title><![CDATA[微信H5同层播放器以及视频自动播放]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/78458363</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/78458363</guid><author>Elephant_H</author><pubDate>Mon, 06 Nov 2017 15:43:41 +0800</pubDate><description><![CDATA[iOS之前已经解决了视频播放默认全屏，且浮在页面最顶端的问题 playsinline webkit-playsinline 这样就可以在视频之上进行一些操作，实现诸如弹幕、自定义播放控件等的效果。 
但是安卓端却一直迟迟没有一种比较完美的解决方案，直到腾讯规范了H5同层播放器。 
在安卓端启用H5同层播放器也是十分的简单： x5-video-player-type=&quot;h5&quot; 同时也可根据项目需要选择]]></description><category></category></item><item><title><![CDATA[innerHTML、innerText、outerHTML、outerText、text()、html()、val()、document.write、document.writeIn]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/77651547</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/77651547</guid><author>Elephant_H</author><pubDate>Mon, 28 Aug 2017 17:50:26 +0800</pubDate><description><![CDATA[首先，针对API的所属进行分类： 
 
HTML DOM属性：
innerHTML
innerText
outerHTML
outerText
document.write
document.writeIn
jQuery API:
text()
html()
val()
innerHTML、innerText、outerHTML、outerTextinnerXXXX和outerXXXX的区别在于：]]></description><category></category></item><item><title><![CDATA[移动端对es6的支持度以及babel的安装]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/77482689</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/77482689</guid><author>Elephant_H</author><pubDate>Tue, 22 Aug 2017 17:07:07 +0800</pubDate><description><![CDATA[最近的一个项目(微信H5)上线后出现了一个问题：进入页面后没有加载到全部的文件，页面卡住，并且有如下情况：
大部分用户可以正常访问
部分用户出现问题，然后刷新、清缓存之后正常
个别用户反复刷新、清缓存都无法正常显示页面
正常情况下，产生这种情况的原因有很多，例如：html页面语法错误浏览器报错停止渲染、js语法错误程序报错卡住、后台返回数据有问题js报错程序卡住、cdn加载失败等等等等…首先，作]]></description><category></category></item><item><title><![CDATA[css3clip-path绘制正八边形]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/77248894</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/77248894</guid><author>Elephant_H</author><pubDate>Wed, 16 Aug 2017 15:52:39 +0800</pubDate><description><![CDATA[做微信H5项目，不可避免的要碰到使用用户头像的情况，而设计师为(cong)了(bu)追(kao)求(lv)美(qian)观(duan)也总是会出一些五花八门的头像框设计稿。虽然我觉得圆形就挺好看的。。。 
此次项目中有一个排行榜页面，会呈现用户名称、头像、积分等一些条目，而本次的头像框，是正八边形的- -。 
由于本菜此前并未研究过svg，canvas等绘制矢量图形的东西，当拿到设计稿之初，脑海里浮]]></description><category></category></item><item><title><![CDATA[关于wordpress导入xml文件无响应的问题。]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/76084959</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/76084959</guid><author>Elephant_H</author><pubDate>Tue, 25 Jul 2017 16:53:39 +0800</pubDate><description><![CDATA[公司要给新项目单独做一个简单首页站用来报备使用，选择简单方便的wordpress软件进行开发，将导出好的其他网站wordpress的xml文件导入后，界面一片空白不显示任何东西，刷新后提示导入的文件是空文件，请检查php是否允许上传或上传文件的限制是否符合要求（由于该问题本人已经解决忘记截图，提示语句大概是这个意思）。 
百度 and Google了很久之后，网上对于这个问题的解决方案大多是修改ph]]></description><category></category></item><item><title><![CDATA[es6模板字符串中标签模板作为参数时产生空元素的问题]]></title><link>https://blog.youkuaiyun.com/Elephant_H/article/details/75675613</link><guid>https://blog.youkuaiyun.com/Elephant_H/article/details/75675613</guid><author>Elephant_H</author><pubDate>Fri, 21 Jul 2017 22:51:53 +0800</pubDate><description><![CDATA[当模板字符串作为标签模板使用时，标签函数接受到的参数分别为（arr,…values）
arr：模板字符串中所有那些没有变量替换的部分
…values：各个变量替换后的值
即let a = 'Oh!';
let b = 'the';
let c = 'very much!'
tag `${a} I love ${b} JavaScript ${c}`;function tag(arr, ...valu]]></description><category></category></item></channel></rss>