<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cjFrontEnd的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cjFrontEnd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cjFrontEnd]]></copyright><item><title><![CDATA[前端补齐起止日期之间的所有日期与月份的简单方法]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/103495701</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/103495701</guid><author>cjFrontEnd</author><pubDate>Wed, 11 Dec 2019 18:23:41 +0800</pubDate><description><![CDATA[最近在做的一个图表可视化需求里面要求: 选定起止日期之后对起止日期里面每一天的数据进行展示,由于后端对数据的处理是没有数据就不返回, 所以起止日期之间的date列表需要前端进行处理, 任意选择两个起止时间之后需要得到的日期和月份列表如下:



再换个日期显示一下:





实现思路:

一开始觉得需要自己处理每一个月的月份长度问题, 这样的话还得加上闰月的计算代码, 感觉虽然...]]></description><category></category></item><item><title><![CDATA[IE项目使用iframe之后内存持续升高的解决办法]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102771396</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102771396</guid><author>cjFrontEnd</author><pubDate>Sun, 27 Oct 2019 23:41:43 +0800</pubDate><description><![CDATA[问题背景

最近一年多在做的项目是一个大数据的产品平台, 做一些数据类的产品, 主要是做一些客户的分群筛选, 客户画像, 策略配置之类的功能, 项目使用的技术栈是vue, 项目的一些产品页会被公司的几个其他的平台调用. 出现问题的这个页面是一个用户的画像页, 调用方是业务方坐席的使用平台, 一个运行在IE上的项目, 调用的方式是使用iframe将页面嵌入.



问题的产生

周一我们收到...]]></description><category></category></item><item><title><![CDATA[文件上传编码格式不对]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102611801</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102611801</guid><author>cjFrontEnd</author><pubDate>Thu, 17 Oct 2019 17:44:08 +0800</pubDate><description><![CDATA[解决方案一：
1、将编码方式 enctype设置为："multipart/form-data"
如： &lt;form action="${ctx}/executeImport" method="post" enctype="multipart/form-data"&gt;



方案二：

用elementUI 上传组件库


...]]></description><category></category></item><item><title><![CDATA[vue 项目为echarts图添加点击事件 及常见的两问题分析]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102398045</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/102398045</guid><author>cjFrontEnd</author><pubDate>Tue, 08 Oct 2019 18:06:25 +0800</pubDate><description><![CDATA[vue 项目里用echarts已经很长一段时间了，项目的配置项什么的也查了不少， 但是隔断时间换个项目， 很多内容都容易忘记，或者掉进之前踩过的坑， 所以下面做个简单的记录：



步骤一：

本地安装echarts

npm install echarts --save



步骤二：

在main文件里面先引入echars：

import echarts form ‘echars’;

...]]></description><category></category></item><item><title><![CDATA[vue-cli3 项目启动报错 unexpected token... 居然是因为node版本过低]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100887171</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100887171</guid><author>cjFrontEnd</author><pubDate>Mon, 16 Sep 2019 15:20:43 +0800</pubDate><description><![CDATA[最近在接手一个vue-cli3搭建的app项目的新需求时， 发现自己拉下代码之后启动一直报错,

报错是unexpected token...

对应的报错文件是 项目\node_modules\read-pkg\index.js ，具体是里面有一个...options 的运算操作报错，导致项目起不起来

后面捣鼓一圈， 走了点弯路， 还是把问题解决了， 问题的解决过程如下:


...]]></description><category></category></item><item><title><![CDATA[缓存机制]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/90605153</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/90605153</guid><author>cjFrontEnd</author><pubDate>Mon, 09 Sep 2019 09:09:24 +0800</pubDate><description><![CDATA[http缓存机制：https://www.cnblogs.com/ranyonsue/p/8918908.html

Web 缓存大致可以分为：数据库缓存、服务器端缓存（代理服务器缓存、CDN 缓存）、浏览器缓存。

浏览器缓存也包含很多内容： HTTP 缓存、indexDB、cookie、localstorage 等等。这里我们只讨论 HTTP 缓存相关内容。

在具体了解 HTTP 缓存之前先...]]></description><category></category></item><item><title><![CDATA[前端错误捕获]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100119730</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100119730</guid><author>cjFrontEnd</author><pubDate>Wed, 28 Aug 2019 15:09:36 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/qq_26702033/article/details/79863485

前端错误的分类：
及时运行错误：代码错误；
资源加载错误；

及时运行错误的捕获方式：
- try-catch
- window.onerror,注册window.onerror事件。

window.onerror = function(){}
1
资源加载错...]]></description><category></category></item><item><title><![CDATA[自定义输入框样式修改]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100114174</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/100114174</guid><author>cjFrontEnd</author><pubDate>Wed, 28 Aug 2019 10:30:33 +0800</pubDate><description><![CDATA[input 上样式

outline： none



包装框：

.outter-box input:focus {

    border: 1px solid #4e7aeb;

}




]]></description><category></category></item><item><title><![CDATA[vue项目页面滚动到特定元素的的四种方法]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/99709971</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/99709971</guid><author>cjFrontEnd</author><pubDate>Sun, 18 Aug 2019 23:00:39 +0800</pubDate><description><![CDATA[最近在做一个关于语音识别的项目, 涉及到语音消息的实时推送, 语音内容的识别与内容关联话术推荐, 做的时候需要实现一个识别出来的内容关联客户对话内容的功能, 简而言之就是实现一个点击跳转到在实时更新的对话框内与当前内容相关联的特定元素的功能, 实现的过程中用一个很巧妙的办法解决了, 这里记录一下.

方法一:利用锚链接 / 直接改变hash值

说道页面内的跳转, 有过一段时间开发经验的同学想到...]]></description><category></category></item><item><title><![CDATA[VUE技术揭秘阅读笔记之vue源码构建]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/98848457</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/98848457</guid><author>cjFrontEnd</author><pubDate>Sun, 11 Aug 2019 23:23:03 +0800</pubDate><description><![CDATA[一：vue的源码构建是基于rollup

关于rollup， 我们需要提前了解并知道的是，rollup是一种最近比较火的前端工程化构建工具， 提供了多种打包方式，并且可以通过format属性设置你想要打包成的代码类型：


	amd - 输出成AMD模块规则，RequireJS可以用
	
	
	cjs -CommonJS规则，适合Node，Browserify，Webpack等
	
	
	es...]]></description><category></category></item><item><title><![CDATA[flutter与RN对比]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/98475834</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/98475834</guid><author>cjFrontEnd</author><pubDate>Sun, 04 Aug 2019 23:29:25 +0800</pubDate><description><![CDATA[本周五下午公司组织了三场分享:

一场是关于前端微架构;

一场是关于flutter的介绍;

一场是关于react native项目实战

flutter最近热度很高,是由 Google 的工程师团队打造的，用于创建高性能、跨平台的移动应用的框架, RN 也是使用率较高的跨平台移动应用开发框架.

flutter的介绍当中并未介绍实际开发案例, 而选择使用RN技术的项目组则是考虑到由于flu...]]></description><category></category></item><item><title><![CDATA[Express中间件的原理及实现]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/96774534</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/96774534</guid><author>cjFrontEnd</author><pubDate>Sun, 21 Jul 2019 23:01:39 +0800</pubDate><description><![CDATA[最近在学习的内容里面有关于中间件原理以及实现,认真了解一下,发现其原理并不难

转一篇写得不错的文章做下记录, 转载地址:https://www.jianshu.com/p/797a4e38fe77


参考文章：初学nodejs一：别被Express的API搞晕了



GitHub，欢迎star：https://github.com/BadWaka/node-express-middlewa...]]></description><category></category></item><item><title><![CDATA[继承的八种方式]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/96767393</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/96767393</guid><author>cjFrontEnd</author><pubDate>Sun, 21 Jul 2019 22:57:01 +0800</pubDate><description><![CDATA[JavaScript高级程序设计上介绍了六种继承的方式, 本来想自己写笔记记录一下,后来在网上看见这篇文章总结得很好,先转过来~



文章一下内容转载自:https://segmentfault.com/a/1190000016891009

1、原型链继承

构造函数、原型和实例之间的关系：每个构造函数都有一个原型对象，原型对象都包含一个指向构造函数的指针，而实例都包含一个原型对象的指针...]]></description><category></category></item><item><title><![CDATA[vue的双向绑定原理及实现]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/95936875</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/95936875</guid><author>cjFrontEnd</author><pubDate>Sun, 14 Jul 2019 23:35:44 +0800</pubDate><description><![CDATA[前言

使用vue也好有一段时间了，虽然对其双向绑定原理也有了解个大概，但也没好好探究下其原理实现，所以这次特意花了几晚时间查阅资料和阅读相关源码，自己也实现一个简单版vue的双向绑定版本，先上个成果图来吸引各位：

代码：                                  效果图：



是不是看起来跟vue的...]]></description><category></category></item><item><title><![CDATA[深入理解GET和POST的区别]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/95038171</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/95038171</guid><author>cjFrontEnd</author><pubDate>Sun, 07 Jul 2019 23:02:53 +0800</pubDate><description><![CDATA[一说到get后post的区别 可能我们最先了解到的是下面的这些内容:



·GET 在浏览器回退时是无害的· GET 产生的 URL 地址可以被收藏，而 POST 不可以

· GET 请求会被浏览器主动缓存，而 POST 不会，除非手动设皿置

· GET 请求只能进行 URL 编码，而 POST 支持多种编码方式

· GET 请求参数会被完整保留在浏览器历史记录里，而 POST 中的参数...]]></description><category></category></item><item><title><![CDATA[输入URL后的加载过程]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/93617854</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/93617854</guid><author>cjFrontEnd</author><pubDate>Tue, 25 Jun 2019 14:20:08 +0800</pubDate><description><![CDATA[输入url后的加载过程

从输入 URL 到页面加载完成的过程中都发生了什么

计算机网络体系结构

应用层(HTTP、SMTP、FTP、POP3)
	运输层(TCP、UDP)
	网络层(IP(路由器))
	数据链路层(网桥(CSMA/CD、PPP))
	物理层(集线器)
1. 查找域名对应IP地址

这一步包括 DNS 具体的查找过程，包括：浏览器缓存-&gt;系统缓存-&gt;路由器缓存......]]></description><category></category></item><item><title><![CDATA[前端模块化 AMD、CMD与Common.js的区别]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/93617719</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/93617719</guid><author>cjFrontEnd</author><pubDate>Tue, 25 Jun 2019 14:17:44 +0800</pubDate><description><![CDATA[前端模块规范有三种：CommonJs,AMD和CMD。
CommonJs用在服务器端，AMD和CMD用在浏览器环境
AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。
CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。
AMD:提前执行（异步加载：依赖先执行）+延迟执行
CMD:延迟执行（运行到需加载，根据顺序执行）

模块

函数写法

　　function f1()...]]></description><category></category></item><item><title><![CDATA[web安全指XSS与CSRF]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/88124051</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/88124051</guid><author>cjFrontEnd</author><pubDate>Sun, 23 Jun 2019 23:21:10 +0800</pubDate><description><![CDATA[根据《图解http》一书关于web攻击的介绍，攻击的模式有两大类,主动攻击与被动攻击

主动攻击:

主要针对服务器上的资源进行攻击,代表攻击方式有SQL注入与OS命令注入.

被动攻击:

攻击者并不是直接对web应用发起攻击, 而是通过一定的引诱或者圈套策略发起攻击.



被动攻击中最常见的两种攻击方式是XSS与CSRF:

xss(cross-site-scripting)：跨站脚本攻击...]]></description><category></category></item><item><title><![CDATA[call与apply的模拟实现]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/92436742</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/92436742</guid><author>cjFrontEnd</author><pubDate>Sun, 16 Jun 2019 23:49:12 +0800</pubDate><description><![CDATA[前段时间看了冴羽github上call与apply的模拟实现,文章由浅入深将整个实现的过程循序渐进地完善道来, 这里记录一下我学习过之后的一些总结:

整个模拟实现的过程分为三步:

第一步: 完成一个初步的call模拟调用过程;

第二步: 完善入参的传递与调用;

第三步: 补全调用对象缺失时的状况,代码实现apply调用;



第一步模拟调用的原理:

根据call的定义:call()...]]></description><category></category></item><item><title><![CDATA[深入理解 requestAnimationFrame]]></title><link>https://blog.youkuaiyun.com/cjFrontEnd/article/details/88128401</link><guid>https://blog.youkuaiyun.com/cjFrontEnd/article/details/88128401</guid><author>cjFrontEnd</author><pubDate>Wed, 29 May 2019 18:01:49 +0800</pubDate><description><![CDATA[随笔-34 文章-12 评论-371

requestAnimationFrame 知多少？

在Web应用中，实现动画效果的方法比较多，JavaScript 中可以通过定时器 setTimeout 来实现，css3 可以使用transition 和 animation 来实现，html5 中的 canvas 也可以实现。除此之外，html5 还提供一个专门用于请求动画的 API，即 r...]]></description><category></category></item></channel></rss>