自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 问答 (1)
  • 收藏
  • 关注

原创 UmiJS 文档梳理

今天看了一下UmiJS 的文档,于是我抱着总结一下的心态画了个思维导图,就是方便一眼看清楚:这个文档里有啥内容,具体细节可以去官网里面找。umi官网UmiJSumi,中文发音乌米,是一个可插拔的企业级react应用框架。支持配置的路由方式、完善的插件体系,支持PWA、以路由为单元的动态加载,开发启动快、一键兼容IE9、支持TypeScript、与dva数据流深入融合等特性。指南篇思维导...

2019-11-26 17:11:59 2057

原创 js base64 转file文件

需求今天的需求是后台大佬返回给我文件的base64,前端需要把base64转成文件并下载。开始搬砖听着好简单的样子,当然去百度一波:js 图片base64转file文件的两种方式。作为一个cv程序员,我觉得可以下班了。一波操作后,居然报了个错。//将base64转换为文件dataURLtoFile(dataurl) { var arr = dataurl.split...

2019-08-29 19:57:13 6160

原创 Promise 学习笔记

Promise这个特性真的很赞,他帮我们解决了回调地域的问题。但是平时用到promise也就两行代码,.then.then.catch ,啥也不懂跑通代码就行,最近在看Event loop 的时候才发现自己对promise知之甚少,所以抓紧来学习一波。本文主要参考:阮一峰 ES6入门 promise自己再来写一遍目的是加深自己的理解,梳理一遍能够掌握的更好。基本信息promise是...

2019-04-24 17:37:20 228

原创 Socket网络编程

网络服务通常要做两件事情:建立连接和传输信息。涉及到的代码见git地址node-js-demosocket通信服务器端代码如下,服务端代码存在server.js里面const fs = require('fs');const net = require('net');const filename = process.argv[2];if (!filename) { ...

2019-02-20 20:37:57 234

原创 Nodejs的文件操作

Nodejs简单的文件操作监听文件变化fs.watch('target.txt', () => { console.log('file changed!');})监听target.txt 文件,如果文件内容变化,会调用回调函数。调用完会继续监听,不会退出。接收命令行参数var filename = process.argv[2];//执行命令nod...

2019-02-20 11:20:08 294

原创 观察者模式

背景先简单说一下什么是观察者模式。观察者模式又叫做发布订阅模式,订阅者可以订阅一些消息,发布者可以发布一些消息。举个

2018-11-19 15:37:33 158

原创 debounce 与throttle

背景开发过程中我们会遇到一些场景,事件频繁被触发,导致频繁的DOM操作等,导致UI卡顿 甚至浏览器崩溃等。1、window对象的resize、scroll 事件2、拖拽时的mousemove事件3、input的change、keyup事件等4、游戏中的mousedown、keydown事件5、发送请求按钮为了防止用户不停的点击解决方案这些场景我们会对他做节流处理,也...

2018-11-10 13:47:07 277

原创 浅谈小程序生命周期

马上要做小程序的开发啦,看了一波文档,总结一下。小程序框架小程序的框架分为视图层和逻辑层。逻辑层由js 编写,视图层由WXML和WXSS编写。WXML 用来描述页面结构,相当于HTML;WXSS用来用来描述页面样式,相当于CSS。小程序启动后,每个页面的数据放在data(这个data是在页面的js文件里)里面,初始化页面, 当用户触发页面的事件,逻辑层接受页面的事件反馈,通过set...

2018-09-01 19:02:06 6492 1

原创 http2.0

二进制    Http2 采用二进制传输数据,而非http1.x的文本格式。多路复用 http2的一个非常重要的改进。多路复用,简单来说就是一条TCP连接上面可以并发多个请求。 http1.x: 一个TCP连接上面同时只能发送一个http请求,也就是说第二个请求必须等第一个请求的响应返回才能发送。 http 管线化:多个请求可在一个TCP连接中发送,发送过程中无需等待前面请求的...

2018-08-26 21:23:59 255

原创 钩子函数是什么?

什么是钩子函数?先来看一段百科:钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。emmmm,认认真真读三遍。get关键词,在系统级对所有消息进行过滤,这是什么意思呢?是说钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一...

2018-08-25 18:40:33 25474

原创 《图解http》读书笔记(二)

第六章 HTTP首部字段通用首部字段1.Cache-Control请求指令:(请求头里面带Cache-Control时的指令)指令 参数 说明 no-cache 无 强制向源服务器再次验证 no-store 无 不缓存请求或响应的任何内容 max-age=[秒] 必须 Cache-Control:m...

2018-08-18 19:16:45 256

原创 《图解http》读书笔记(三)

第七章 确保web安全的HTTPSHTTP在安全性方面并没有保障,所以我们不得不提到HTTPS,HTTPS并非是一种新的协议,HTTPS = HTTP + SSL,相信大家都知道,接下来一起看一下https到底是什么吧?HTTP存在的问题:明文传输,不加密 不验证通信方的身份 无法保证报文的完整性所以,https也就是HTTP + 加密 + 认证 + 完整性保护 ,弥补了http...

2018-08-17 14:33:20 336

原创 《图解http》读书笔记(一)

《图解http》是http入门级别的书,图文并茂,对初学者十分友好。强烈推荐~最近又看了一遍,简单地写一下读书笔记吧。【第一至五章】第一章 网络基础输出一串url,点击回车就可以看到web页面,web页面是怎么显示出来的呢?web浏览器向web服务器发送请求,获取资源,web页面显示。web是基于http协议进行通信的。http通信又是基于TCP建立连接的,图为通信过程。应用层:决...

2018-08-16 22:16:29 441

原创 Express 初学笔记

看了express很多次,都是懵懵的,这次居然看得有些明白了。整理一篇笔记吧~Express是什么?官网是这么说的:基于Node.js平台,快速、开发、极简的web开发框架。嗯,express就是一个Node.js框架。他自身功能非常简单,就是在调用各种中间件。创建Express应用创建一个Express应用非常简单,官网上面有一个Hello world实例,试一下就懂了,不再多说。路由下面来说一...

2018-07-11 11:13:59 654 1

原创 如何处理公共模块--对比npm和git submodule

先说一下使用场景:当多个项目中用到了公共模块,如何处理这些公共模块呢?举个例子:当前项目中用到了一些组件Loading、Input啊,一些公共组件,并不想写在项目本身,而是抽出来可以为多个项目所复用。本文主要对比以下两种方式:1. 把公共组件写成一个npm包,使用时npm install安装即可2. 公共组件单独写成一个项目,使用时用git submodule引入到主项目中下面比较这两种方式的异同...

2018-06-17 23:51:46 3275

原创 单点登录的解决方案

背景项目组的多个子项目想要实现统一登录,也就是多个项目共用一个登录页面,在A项目登录成功时,访问B项目页面时是不用登录的。先说一波cookie的概念在浏览器中,打开控制台,选择Application,点击cookie下面的子选项,就可以看到cookie了。cookie是在服务器端生成的,返回给客户端,由客户端来保存。上图列表中每一条都是一个cookie。Name :名称,一个唯一确定cookie的...

2018-06-17 23:46:28 7470

原创 css画三角形

用css怎么画一个三角形?

2018-06-17 23:40:38 822

原创 原生实现call、apply方法

大学的时候,一位大佬跟我说,让我用原生写一下call、apply方法,我没写。直到现在。。。。拖延症真的不是吹的。call先来看官方解释:call()方法调用一个函数,其具有一个指定的this值和分别地提供的参数(参数的列表)。也就是说使用call方法,你可以指定被调用函数的this值,并且给他传参数。接下来我们自己实现一个call方法。1、模拟如何指定this的值先来看一段代码function ...

2018-06-17 23:33:21 6154 3

原创 koa2 入门

今天来玩一下koa2,先说一下什么是koa呢?koa是Nodejs的web开发框架,express也是。1、首先,来安装koa-generatornpm install -g koa-generator2、接下来,我们来创建koa2项目koa2 HelloKoa23、进入项目,安装依赖cd HelloKoa2npm install 4、启动项目npm run start这个时候如果没有报错,那...

2018-05-17 20:39:57 7773 2

原创 原生实现bind方法

想要用原生js写一下bind方法,嗯,让我们先来了解一下bind方法吧,先看一波官方的解释(MDN):bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体。当新函数被调用时this值绑定到bind()的第一个参数,该参数不能被重写。绑定函数被调用时,bind()也接受预设的参数提供给原函数。一个绑定函数也能使用new操作符创建对象:这种行为就...

2018-05-13 12:16:14 5405

原创 tab切换优化

前两天写了一个很简单的静态页面,用到tab的切换,简单的说一下吧。首先,我要做的页面是这个样子的。好了,看到这张图想来已经很明白了,就是tab的切换来展示内容。进入主题,这个要怎么做呢。1.把上面的大赛首页、介绍等写成div(其他元素当然也是可以的),点击大赛首页div,大赛首页的内容显示,其他部分的内容隐藏。点击大赛介绍div,介绍部分内容显示,其他内容隐藏。

2017-03-24 11:46:21 1026

原创 Node.js做登录& 上传文件

好了,今天上午写一下这段时间的总结吧。    背景:就是要写一个项目的一部分,从前端到后台,其实前端要写的东西比较少,主要是用一些写好的组件,网页大体的样子都已经有了,其实主要还是写后台。2333那么问题来了,我是写前端的,后台几乎没有写过,就是学校里的时候做过一个图书馆里系统,用PHP写过增删改查,除此之外没有任何后端语言等相关基础。简单说一下我现在要写的那个东西用到的东西,React(我只

2017-03-08 12:03:01 600

原创 IE8兼容rgba

嗯,关于IE8不兼容rgba()函数的这个问题,background:rgba(236,236,236,0.8);这样的一句代码在IE9及以上都是支持的,那么说一下IE8要怎么做?background:rgba(236,236,236,0.8);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#

2016-07-20 18:20:36 1602

原创 点击第0个<li></li>弹出0,点击第一个<li></li>弹出1

最近遇到了一个问题,一个里面嵌套了好多空的标签,点击弹出它的序号(HTML不可修改)。即点击第0个标签弹出0(作为一个程序猿,我们就从第0个开始说起吧),点击第1个标签弹出1。给出的HTML结构如下:    先写一段错误的代码: var ul1 = document.getElementById(“ul1”);var oli =ul1.getElements

2016-04-19 12:31:50 1412

原创 左边固定 右边自适应

左边固定 右边自适应1.第一种实现方式,左边给定宽高,左浮动,右边给定高度,margin-left:左边的宽度;2.第二种实现方式这两种方法网上都可以百度得到,在这里就不多说了,只是注意,右边的那个div可以不设置他的宽度,但是高度必须给定(div是空,如果你的div里面有文字那么就会自动撑高了),建议学前端的同学还是

2015-11-28 20:59:13 989

原创 onkeydown事件实例应用

onkeydown 事件会在用户按下一个键盘按键时发生。这个不用说都知道,可以通过键值检测一下用户按下的是什么键,当然,onkeydown不仅仅是只有这个功能。    总结一下onkeydown事件在实例中的应用,有两个小例子    1.显示密码强度      例如:在一个需要输入密码的input输入框内输入密码,输入的同时需要检测密码强度,并显示出来,如图。      

2015-11-14 19:33:47 2291

原创 简单的拖拽

分享一下最近写的一个拖拽的小效果    1.嗯,要实现的一个效果就是把div从一个位置拖到另一个位置,怎么实现呢?    首先,要拖div,先把鼠标按下去,拖着div走,然后鼠标松开。这样,完了。    我们都知道,按下鼠标这个事件就是onmousedown,当鼠标按下,获取到鼠标此时的位置到div的left和top的距离。  odiv.onmousedown = function(e

2015-07-19 19:44:53 404

原创 总结

1.键盘的左右键移动div这个比较简单,就是判断一下键盘按的是哪个键,判断它的keyCode。  if(oevent.keyCode==37)//如果按的是向左键    {     odiv.style.left = odiv.offsetLeft -10 +'px';    }    else if(oevent.keyCode==39)    {    odiv

2015-07-19 18:56:59 327

原创 提取行间事件

提取行间事件//实际上onclick也如同value一样,只是这个button按钮的一个属性而已,那么我们也可以这样写//在input里面不写onclickvar odiv = document.getElementById('btn1');odiv.onclick = function(){alert("rfff");}如果你把这段js代码提到

2015-06-02 20:49:15 955

原创 变绿变宽变高

如果单单要做出更改一个div的颜色宽高,javascript的实现会很简单,但是写完后,会不会发现写了三个十分相似的函数,对,我们要合并它,尽量减少代码的冗余,也方便以后的修改,让你的代码更灵活。   下面我们看两种属性的赋值方法。   (1)odiv.style.background="green";   (2)odiv.style['background'}="green";

2015-06-01 21:19:56 734

原创 c++设计模式---适配器模式

#includeusing namespace std;//适配器模式,通过调用第三方类库实现软件功能//基类Baseclass Base{public :virtual void process()=0;//process()为纯虚函数,多态virtual ~Base(){}};//Adaptee类中的Request()函数已经实现了A

2015-04-25 13:49:15 683

原创 c++设计模式---代理模式

#includeusing namespace std;//代理模式中注意代理虽然可以实现某个功能,但是代理并不具备该功能,它的实现是通过调用别人的功能//至于具体哪个功能,多态中基类指针指派生类对象,指向哪个派生类,就去调用哪个派生类的fun函数class Base{public :virtual void fun()=0;virtual ~Base(){}

2015-04-25 13:45:44 761

原创 堆排序

堆排算是排序算法中比较难的一个算法,在实现编码之前首先要对堆排的思想有一个清晰的思路,下面我们就来分析一下堆排序。   1.首先要明白堆排序第一步要有堆,也就是完全二叉树,那么问题来了,如何创建一个完全二叉树呢?完全二叉树是需要按层来创建的,如果你曾经编写过按层遍历二叉树这块会很好理解,按层的话要记录上一个结点,所以要用到     队列,创建的节点依次入队。   2.创建好完全二叉树,堆排

2015-04-20 19:10:36 619

原创 javascript常见小问题处理

1.  相当于空格2.输出的字符串里包含双单引号,如何输出?比如想输出   可爱的"小熊" ;而var t="可爱的"小熊"";输出t会出错。  var t="可爱的\"小熊\" ";即可(给里面的双引号加上一个\).3.==和===的区别  if(null==undefined)  ==>true  if(null===undefined)  =

2015-04-18 10:03:24 479

原创 c++实现一个 调用多条输出(使用动态数组实现)

#include #include#includeusing namespace std;class A{private:int x,y;public:A(int x=0,int y=0)       {           this->x=x;           this->y=y;       }       void fun()  

2015-03-09 20:48:34 934

原创 c++实现一条调用多条输出

#includeusing namespace std;class A{private:int x,y;        A * next;        public:A(int x=0,int y=0,A * n=NULL)       {this->x=x;       this->y=y;       next=n;       }

2015-03-08 21:31:37 756

原创 js常见问题整理

1.  document负责一切和文档相关的事情,window负责一切和浏览器窗口相关的事情。2.  事件的三要素事件源:有监听的html标签,能响应事件的html标签,就是事件源。事件名:用户的特定行为,比如onclick事件的响应:就是一个个function3.  visibilie:hidden,是让元素隐藏,但元素不会让出自己的位置,display:none;元素隐

2015-03-06 20:52:18 609

原创 图的遍历(广度优先)

图的广度优先遍历(非递归)分析:主要思想用队列实现,(与二叉树的层次遍历类似,)第一个结点A入队,然后与其相关的结点都入队,A出队并输出A已经被访问,,此时找与队首元素(假设为B)相关的结点,全部入队,B出队并输出B已经被访问,依次循环直到队列为空。//图的遍历(广度优先)void DFS(AdjMatrix *G,Visit *V){        int q

2014-12-21 23:02:37 507

原创 huffman树的分析

问题分析:huffman树即最优二叉树,问题不再详细描述了。下面说下实现的过程的要注意的问题。    1.先从森林中取出两个权值最小的结点(一个最小,一个次小)这两个结点作为一个双亲结点的两个孩子结点,双亲的权值为两个孩子结点权值之和。    2.把该双亲结点放回到森林,再去取出最小的结点(一个最小,一个次小),重复1过程,直到森林只剩一个结点。但此时并不是只剩一个结点,而是变成一棵树,

2014-12-05 21:35:06 656

原创 无向图的实现

这是无向图的源代码,相信你看了也已经学会无(有)向网,有向图了。如有bug,还请大神指正。#include#include#define maxvex 20typedef struct {int a[maxvex][maxvex];int vex[maxvex];int vexnum;//顶点数int arcnum;//边的数目}AdjMat

2014-11-26 22:08:35 773

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除