<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nick_chain的博客]]></title><description><![CDATA[渣渣的路程]]></description><link>https://blog.csdn.net/nick_chain</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; nick_chain]]></copyright><item><title><![CDATA[echart设置将图例文字放置在图例图标icon中]]></title><link>https://blog.csdn.net/nick_chain/article/details/115630927</link><guid>https://blog.csdn.net/nick_chain/article/details/115630927</guid><author>nick_chain</author><pubDate>Mon, 12 Apr 2021 17:34:17 +0800</pubDate><description><![CDATA[将图图表的图例设置如图所示，将图例文字放置在图例图标中。

原图图表是这样的：https://echarts.apache.org/examples/zh/editor.html?c=line-stack


option = {
    title: {
        text: '折线图堆叠'
    },
    tooltip: {
        trigger: 'axis'
    },
    legend: {
        data: ['邮件营销', '联盟广告', '视频广告..]]></description><category></category></item><item><title><![CDATA[JS关于时间戳Date(YYYY-MM-DD HH:MM:SS)格式Firefox,IE浏览器不兼容问题]]></title><link>https://blog.csdn.net/nick_chain/article/details/106498032</link><guid>https://blog.csdn.net/nick_chain/article/details/106498032</guid><author>nick_chain</author><pubDate>Tue, 02 Jun 2020 16:38:50 +0800</pubDate><description><![CDATA[前段时间做一个表单输入，关于一个开始-结束时间范围的表单输入，前端准备做一个校验，就是结束时间必须大于开始时间。逻辑很简单，就是时间戳转换一下格式，用getTime去比较大小。表单输入是这样的：



本人在chrome上做的开发，由于项目比较紧，没有做多浏览器的自测，加上自身经验不足。然后代码写的是酱紫：



然后发版到现场，第二天如期收到了客户爸爸们，亲切的'问候'!!!!

客户爸爸们，有用360的，有用Firefox的,还有IE的。。。他们的浏览器均报错了，表单无法提交

我打开控制台一看：

c]]></description><category></category></item><item><title><![CDATA[从JavaScript函数防抖，到嵌入式的软件防抖，再到硬件上的硬件防抖引发的思考]]></title><link>https://blog.csdn.net/nick_chain/article/details/103125600</link><guid>https://blog.csdn.net/nick_chain/article/details/103125600</guid><author>nick_chain</author><pubDate>Mon, 18 Nov 2019 18:01:21 +0800</pubDate><description><![CDATA[从javascript应用的角度来说这叫函数防抖，其实从广义的角度来说这属于软件防抖。防抖操作其实是基于业务操作来设计的，其实是一个很简单的东西，却很实用是真的。

防抖的业务场景是什么？

用户短时间内多次提交表单的操作

网络原因，重复按提交按钮

判断scroll是否滑到底部等

为什么要防抖？

就是防止用户短时间内做一些重复无效的操作，从而造成性能上不必要的负担



我们来看业务场景...]]></description><category></category></item><item><title><![CDATA[从浏览器（chrome）进程机制的分析到JavaScript 运行机制之二：输入URL发生了什么]]></title><link>https://blog.csdn.net/nick_chain/article/details/102911357</link><guid>https://blog.csdn.net/nick_chain/article/details/102911357</guid><author>nick_chain</author><pubDate>Tue, 05 Nov 2019 11:29:43 +0800</pubDate><description><![CDATA[上篇说到浏览器的多进程，有如下几个进程：

1.browser浏览器的主进程

2.GPU进程用3d绘制

3.第三方插件进程

4.浏览器内核（渲染）进程，一般情况一个tab一个进程，互不影响，控制页面渲染，脚本执行，事件处理。





我们来说说这个浏览器渲染进程（内核），浏览器内核是多线程的，有如下几个线程：

1.GUI线程

2.JS引擎线程

3.事件触发线程

4.定时器线程

...]]></description><category></category></item><item><title><![CDATA[JS的加载以及CSSOM树，DOM树 ，Render Tree]]></title><link>https://blog.csdn.net/nick_chain/article/details/102910318</link><guid>https://blog.csdn.net/nick_chain/article/details/102910318</guid><author>nick_chain</author><pubDate>Tue, 05 Nov 2019 10:28:34 +0800</pubDate><description><![CDATA[先让我们看一下这段html代码demo


&lt;html&gt;
    &lt;head&gt;
        &lt;script src="test1.js"&gt;&lt;/script&gt;
        &lt;script src="test2.js"&gt;&lt;/script&gt;

        &lt;link href="test1.css" rel="s...]]></description><category></category></item><item><title><![CDATA[使用python   selenium爬取淘宝商品信息 自动登录淘宝和爬取某一宝贝的主图，属性图和详情图等等]]></title><link>https://blog.csdn.net/nick_chain/article/details/102629901</link><guid>https://blog.csdn.net/nick_chain/article/details/102629901</guid><author>nick_chain</author><pubDate>Tue, 22 Oct 2019 18:15:34 +0800</pubDate><description><![CDATA[selenium作为一个自动化测试工具非常好用，谁用谁知道啊。

先说如何登录淘宝，淘宝现在直接用会员名和密码登录会有滑块验证，找了网上说的几种方法和自己尝试了一番效果还是不太理想，实测过程中，即使滑块滑动成功了也无法登录，出现报错的情况。限于自身的技术水平无法解决。但是方法总比困难多，最后用了微博账号登录的。如果你使用了下文的登录方法。那快去注册一个微博账号或者绑定淘宝吧

登录：

首先确保安...]]></description><category></category></item><item><title><![CDATA[从浏览器（chrome）进程机制的分析到JavaScript 运行机制之一：浏览器多进程还是多线程？]]></title><link>https://blog.csdn.net/nick_chain/article/details/102582361</link><guid>https://blog.csdn.net/nick_chain/article/details/102582361</guid><author>nick_chain</author><pubDate>Wed, 16 Oct 2019 12:10:37 +0800</pubDate><description><![CDATA[浏览器（chrome）进程机制：

浏览器作为一个软件，大家有没有好奇浏览器是多进程的还是多线程的？每打开一个浏览器页面代表着是一个线程还是一个进程呢？

其实浏览器是一个多进程软件，从开发的角度来说，相对安全的，多线程意味着大家都在'一条船上'，你打开苹果的官网和三星的官网，苹果官网的页面崩溃了，三星的页面也要和你崩溃吗？无论开发者如何做多线程隔离，线程安全等等操作，整体效果没有多进程来的安全和...]]></description><category></category></item><item><title><![CDATA[JAVA WEB TOMCAT遇到beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'xxxx']]></title><link>https://blog.csdn.net/nick_chain/article/details/102562921</link><guid>https://blog.csdn.net/nick_chain/article/details/102562921</guid><author>nick_chain</author><pubDate>Tue, 15 Oct 2019 11:40:10 +0800</pubDate><description><![CDATA[今天将一个同事的JAVAWEB项目拷到自己的电脑运行，同事的电脑上是完全可以跑起来的，自己的却不能跑起来。遇到这种移植报错情况我们应该从以下几个方面分析原因：

1.MAVEN的问题

是否有MAVEN相关的包没有下完成，进入pom.xml,空一行，保存操作，让maven开始下相应的jar包。若是下载包过程中有断网或者切换网络的操作，应该查询有没有相应的jar下到一半未完成，删除相应的包。或者把...]]></description><category></category></item><item><title><![CDATA[goahead+vue.js开发实战教程三：将打包好的vue项目部署到服务器目录下]]></title><link>https://blog.csdn.net/nick_chain/article/details/102525007</link><guid>https://blog.csdn.net/nick_chain/article/details/102525007</guid><author>nick_chain</author><pubDate>Sat, 12 Oct 2019 18:04:11 +0800</pubDate><description><![CDATA[前提：

你能够将goahead移植成功，可以出来index.html界面

1.在goahead.c里面设置你的web（前端的发布目录）目录路径，例如我的目录设置成'web'，即ME_GOAHEAD_DOCUMENTS = 'web'



2.将goahead默认访问的页面设置正确。在goahead源码中file.c文件里面找到websFileOpen函数，这是goahead默认打开的第一个h...]]></description><category></category></item><item><title><![CDATA[React部署到 Tomcat上 使用 BrowserRouter不能刷新404的问题]]></title><link>https://blog.csdn.net/nick_chain/article/details/102523407</link><guid>https://blog.csdn.net/nick_chain/article/details/102523407</guid><author>nick_chain</author><pubDate>Sat, 12 Oct 2019 17:17:12 +0800</pubDate><description><![CDATA[最近在做一个JavaWeb项目，用react部署前端到tomcat上时，页面不能刷新，出现404的情况。排查到最后是路由的问题

先说BrowserRouter和HashRouter区别：

BrowserRouter：

　　原理是H5的history API，IE9及以下不兼容，需要由web server支持，在web client这边window.location.pathname被rea...]]></description><category></category></item><item><title><![CDATA[两个链表合并到新的链表里面]]></title><link>https://blog.csdn.net/nick_chain/article/details/90546789</link><guid>https://blog.csdn.net/nick_chain/article/details/90546789</guid><author>nick_chain</author><pubDate>Sat, 25 May 2019 15:06:47 +0800</pubDate><description><![CDATA[#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
typedef struct node* List;
struct node{
	int data;
	List next;
};

//从终端输入链表大小和的数据
List ReadList()
{
	List L,t,head;
	int data,N;
	head = (List)mallo...]]></description><category></category></item><item><title><![CDATA[goahead+vue.js开发实战教程二]]></title><link>https://blog.csdn.net/nick_chain/article/details/90321921</link><guid>https://blog.csdn.net/nick_chain/article/details/90321921</guid><author>nick_chain</author><pubDate>Sun, 19 May 2019 00:10:42 +0800</pubDate><description><![CDATA[我们先从vue.js前端说起，先安装node.js,在安装vue.js脚手架，具体的开发安装按照这篇博客介绍的步骤来：

https://www.cnblogs.com/laizhouzhou/p/8027908.html

我这里按照这位博主的教程，也来简明安装一遍。

node.js可以下载中文版地址：https://nodejs.org/zh-cn/download/，点击下载windows...]]></description><category></category></item><item><title><![CDATA[goahead+vue.js开发实战教程一]]></title><link>https://blog.csdn.net/nick_chain/article/details/90256245</link><guid>https://blog.csdn.net/nick_chain/article/details/90256245</guid><author>nick_chain</author><pubDate>Thu, 16 May 2019 09:03:50 +0800</pubDate><description><![CDATA[GoAhead WebServer

GoAhead WebServer是一个功能强大、可以在多个平台运行的嵌入式WebServer，常用于嵌入式web的开发。

Vue .js

这两年最火的前端框架之一，Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是，Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层，不仅易于上手，还便于与第三方库或既有项目整合。另一方面...]]></description><category></category></item><item><title><![CDATA[Spring+JDBC项目启动报错：Error creating bean with name 'dataSource' defined in class path resource]]></title><link>https://blog.csdn.net/nick_chain/article/details/90020987</link><guid>https://blog.csdn.net/nick_chain/article/details/90020987</guid><author>nick_chain</author><pubDate>Thu, 09 May 2019 10:16:13 +0800</pubDate><description><![CDATA[今天用易百教程一个Spring+JDBC网站跑了一个实例，地址：https://www.yiibai.com/spring/maven-spring-jdbc-example.html

发现编译报错，内容为：





我用的是MyEcplise，发现原因是项目中没有加JAVA连接数据库的jar包mysql-connector-java-x.x.x-bin.jar，

下载该jar包地址为：ht...]]></description><category></category></item><item><title><![CDATA[威纶通屏幕（HMI）开发进阶教程四：通过PLC控制，使宏指令跳转到不同的窗口]]></title><link>https://blog.csdn.net/nick_chain/article/details/88982819</link><guid>https://blog.csdn.net/nick_chain/article/details/88982819</guid><author>nick_chain</author><pubDate>Tue, 02 Apr 2019 23:02:21 +0800</pubDate><description><![CDATA[平时用威纶通屏幕的时候，大家是否想过，如何通过一个操作，根据参数的不同跳转到不同的窗口。有时候我们根据业务或者功能需要这么做。

这种功能的实现可以有好几种的方式来实现它，下面介绍根据PLC控制，通过宏指令来跳转不同的窗口。

首先，我们创建一个工程，除了本身一个主窗口10，在新建三个窗口，如以下图所示：





接下来，我们在菜单栏中，点击“元件”-&gt;"PLC"控制-&gt;“新增”。...]]></description><category></category></item><item><title><![CDATA[两个链表的合并]]></title><link>https://blog.csdn.net/nick_chain/article/details/88046511</link><guid>https://blog.csdn.net/nick_chain/article/details/88046511</guid><author>nick_chain</author><pubDate>Thu, 28 Feb 2019 22:31:44 +0800</pubDate><description><![CDATA[将两个链表合并，是面试题中经常遇到的编程题，工作中也会少许用到，难度不大。

下文中是将一个A链表和B链表合并在新的C链表中。


#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
typedef struct node* List;
struct node{
	int data;
	List next;
};
//合并两个链表到新的链表里面
Lis...]]></description><category></category></item><item><title><![CDATA[标准二叉树的创建]]></title><link>https://blog.csdn.net/nick_chain/article/details/87985800</link><guid>https://blog.csdn.net/nick_chain/article/details/87985800</guid><author>nick_chain</author><pubDate>Wed, 27 Feb 2019 19:26:00 +0800</pubDate><description><![CDATA[#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;stdlib.h&amp;gt;
#define MAXSIZE 100
typedef char ElementType;


typedef struct TNode{
	ElementType Data;
	struct TNode* Rchild;
	struct TNode* Lchild;
}BinTree;

type...]]></description><category></category></item><item><title><![CDATA[设计模式的分类]]></title><link>https://blog.csdn.net/nick_chain/article/details/87907672</link><guid>https://blog.csdn.net/nick_chain/article/details/87907672</guid><author>nick_chain</author><pubDate>Sun, 24 Feb 2019 21:27:30 +0800</pubDate><description><![CDATA[1.设计模式有两种分类

按目的型来分：1.创建型   2.结构型  3.行为型

一、 5种创建型模式：工厂方法模式，抽象模式，建造者模式，原型模式，单例模式

 

二、7种结构型模式：适配器模式，桥接模式，组合模式，装饰模式、外观模式，享元模式，代理模式

 

三、11种行为型模式：职责链模式，命令模式，解释器模式，迭代器模式，中介者模式，备忘录模式，观察者模式，状态模式，策略模式，模板方...]]></description><category></category></item><item><title><![CDATA[类与类的几种关联模式的讲解]]></title><link>https://blog.csdn.net/nick_chain/article/details/87736854</link><guid>https://blog.csdn.net/nick_chain/article/details/87736854</guid><author>nick_chain</author><pubDate>Tue, 19 Feb 2019 23:17:03 +0800</pubDate><description><![CDATA[一般来说类与类有六种关联方式：单向关联，双向关联，自关联，多重性关联，聚合关系，组合关系。

1.单向关联一般是把B类作为A类的一个属性来实用，例如Company是一个类，Employee是一个类。然而Company类将Employee作为其的一个属性。



2.双向关联，就是说将对方（类）当做自己的一个属性。例如顾客与商品的关系，顾客购买商品，卖出的商品与某个顾客关联。



3.自关联的比如...]]></description><category></category></item><item><title><![CDATA[C++静态成员与静态函数成员的理解]]></title><link>https://blog.csdn.net/nick_chain/article/details/87260602</link><guid>https://blog.csdn.net/nick_chain/article/details/87260602</guid><author>nick_chain</author><pubDate>Fri, 15 Feb 2019 09:21:59 +0800</pubDate><description><![CDATA[静态成员

我们为什么要使用C++静态成员？静态成员能为我们达到什么样的目的？

很多时候我们使用静态成员的目的，在于想让该类的所有对象共同维护一个或者某几个属性成员。即一个类的多个对象共同使用和维护某个（些）属性。


#include "pch.h"
#include &lt;iostream&gt;
class test {
public:
	void count_a();
	int get...]]></description><category></category></item></channel></rss>