自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 使用git fetch和git rebase处理多人开发同一分支的问题

情景有的时候会遇到这种问题,比如说有两个人,在同一个分支进行开发,假设是我自己,跟我的同伴;现在,我写了一部分代码,准备push到远程了,于是我执行git add、git commit,一切ok,没问题,然后git push,这下问题来了,git告诉我说我的push被rejected了,原来,我的同伴在我执行push之前,已经push了若干个commit到远程,因此我不能直接push,而是需要先把他

2017-07-26 17:31:35 15428 4

原创 git的基本使用流程

关于git的基本理解git:一种分布式版本控制系统git保存的是每一次改动,而不是文件本身。git有三个区:工作区(Working Directory)这个区就是你在电脑上创建项目的地方,文件的编辑修改都在这个区中进行。暂存区(Stage Area)暂存区存放的是待提交到repo的修改,当你使用git add命令时,就是把工作区的修改添加到暂存区。版本库/仓库(Git Directory/Repos

2016-12-09 17:24:13 2540

原创 Handlebars学习之——块表达式

Block helper可以让你自定义迭代器和其他可以传入新的上下文的功能基本块Block helper的定义方法是:在一个mustache中,以#开头,后面跟着helper的名称,然后对应的在一个mustache中以/开头,加上相同的名称作为这个块的结尾。形如:{{#hello}} {{item}}{{/hello}}在helper中,function接收一个hash参数options,而o

2016-11-14 16:30:20 5779

原创 Handlebars学习之——HTML转义

场景使用{{expression}}时,输出的内容会被转义,如:<div>{{title}}</div>context为{ title: '<p>Hello world</p>'}结果生成html:<div><Hello world></div>最终在页面上显示的就是字符串<p>Hello world</p>如果不想进行html的转义,有两种方法:{{{SafeString{

2016-11-04 18:14:48 5551

原创 JavaScript +new Array(017)

问题某龙的笔试题,问console.log(+new Array(017));输出什么第一反应是考察new Array()跟017其实考察的是++运算符作为二元运算符时,有两个功能数字相加连接字符串数字相加没啥好说的,连接字符串时,会先把两个参数都转换成字符串再进行连接。+作为一元运算符时,会将参数转换为数字返回结果所以console.log(+new Array(017));输出的是NaN其

2016-10-27 16:15:13 1519

原创 Handlebars学习之——表达式

Handlebars表达式是Handlebars模板的基本单元,可以单独在{{mustache}}中使用它,将它们传入Handlebars helper,或将它们作为hash arguments的值使用基本使用<h1>{{title}}</h1>这个表达式的意思是:在当前上下文中查找title属性Handlebars也可以使用.来分隔标识符,这类表达式被称为path<h1>{{article.tit

2016-10-27 16:10:04 2729

原创 在Express中使用Handlebars模板引擎

Handlebars介绍 Handlebars 是 JavaScript 一个语义模板库,通过对view和data的分离来快速构建Web模板。它采用”Logic-less template”(无逻辑模版)的思路,在加载时被预编译,而不是到了客户端执行到代码时再去编译, 这样可以保证模板加载和运行的速度。Handlebars兼容Mustache,你可以在Handlebars中导入Mustache模

2016-10-27 16:08:30 4054

原创 webpack打包生成的bundle.js文件过大的问题

问题使用webpack进行打包时,发现bundle.js竟然有2M多。解决办法网上有去除插件、提取第三方库、压缩代码等方法。还有一个比较容易忽略的原因就是开了sourcemap在生产环境中,应使用devtool: false关闭sourcemap后bundle.js的大小从2.46M降到302k参考彻底解决 webpack 打包文件体积过大 - 简书用webpack打包后的文件为什么会非常大?

2016-10-20 14:30:34 10117

原创 Array.prototype.filter()的实现

来源今年某前端笔试的一道题,大概就是实现一遍filter,包括一个可以改变上下文的要求,其实就是改变this啦,跟原生的filter一样的功能跟参数。解析filter的功能就是过滤,传入一个函数作为条件,返回true则将元素加入最终返回的数组中。实现Array.prototype.filter = function(cb, context){ context = context || this;

2016-09-22 19:32:07 1933

原创 页面两列布局高度填满

问题来源昨天早上某面试提出的一个问题,脑子一热漏写了一个条件,心塞。问题大概是写一个两列布局,左边固定,高度都是默认填满页面,右边内容高度超出浏览器窗口出现滚动条。解决办法今天仔细想了下,用浮动做的话,高度不好弄成填满的。折腾了一会儿,搞出两种方案(不使用js的)。左侧:fixed,右侧:absolute,min-height:100%,width为calc(100% - [左侧的width]),

2016-09-22 19:30:53 1226

原创 JavaScript数组去重的几种方法

这个老问题,网上普遍都有了,为什么要再写一遍呢,主要是为了记个笔记。。。遍历时搜索结果数组思路很明确,如下新建一个数组存放结果循环遍历原数组,对于每一个元素,在结果数组中搜索是否存在若不存在则存入结果数组中,返回第二步,直到循环结束代码就不上了,网上一大把。这是最直接的方法,但由于嵌套了循环,效率不高。先排序后比较先将原数组进行排序新建一个结果数组遍历排序后的数组,比较第i个元素与结果

2016-09-20 17:40:45 812

原创 HTTP协议入门要点

应用层协议、基于tcpHTTP/0.9命令GET特点服务器只能回应HTML字符串服务器发送完毕后就关闭tcp连接HTTP/1.0命令GET POST HEAD特点每次通信都必须包括头信息(HTTP header)状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content en

2016-09-20 15:55:33 431

原创 移动端Web适配的两种做法思路总结

看了几篇文章,理一下网易跟淘宝移动端适配的思路,主要是参考 从网易与淘宝的font-size思考前端设计稿与工作流像素相关概念物理像素(physical pixel) 一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。其值也就是我们常说的分辨率设备独立像素(density-independent pixel) 设备独立像素(也

2016-09-13 18:44:30 16687

原创 gulp-less解决遇到错误停止执行task

来龙去脉在用less+gulp开发时,有时候代码还没写完整,不小心保存了一下,然后gulp就开始执行gulp-less的task。 但是代码是有问题的,这时候会输出一个Potentially unhandled rejection,告诉你哪里出问题了,然后, 然后就挂了!!pipe就会停止输入数据,整个task就停止了。 特别是我用Sublime,设置了失去焦点自动保存,很容易出现这个问题。解

2016-09-09 13:56:45 3061

原创 CentOS 7 防止端口自动关闭

tl;drfirewall-cmd --permanent --zone=public --add-port=2888/tcpfirewall-cmd --reload #重新载入服务永久配置firewalld开启端口。之前的一些坑之前的一篇文章CentOS 7部署Node.js+MongoDB:在VPS上从安装到Hello world中,讲到了CentOS开启端口用这个命令firewall-c

2016-09-09 13:06:52 4424

原创 CentOS利用postfix搭建邮件服务器

之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?)安装postfixCentOS 7 自带了postfix服务,在/etc/postfix 目录下没有安装的可以用yum安装为域名添加DNS解析需要添加三条记录,A记录、MX记录、TXT记录配置postfix我接触postfix的时候貌似已经被人

2016-08-31 01:29:36 2193

原创 Node.js抓取网页

前几天四六级成绩出来(然而我没考),用Node.js做了一个模拟表单提交并抓取数据的Web 总结一下用到的知识,简单的网页抓取大概就是这个流程了发送Get或Post请求表单提交,首先弄到原网页提交的地址,然后引入http或https模块 也可以下载使用request模块。 这边以get为例var http = require('http');//设置请求参数,包括headersvar opt

2016-08-29 17:18:37 908

原创 用Node.js发送邮件

本文讲的是用Node.js通过一个开启smtp的已有的邮箱账号发送邮件,而不是如何创建一个邮件服务器开启smtp服务首先要去要使用的邮箱中设置开启smtp,才能正常发送邮件这边以163邮箱为例安装Nodemailer模块npm install nodemailer --save-dev设置Nodemailervar nodemailer = require('nodemailer');//usern

2016-08-29 15:29:09 2053

翻译 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2

MongoDB(名称取自“huMONGOus“)是一个有着全面灵活的索引支持和丰富的查询的数据库。MongoDB通过GridFS提供强大的媒体存储。点击这里获取MongoDB的更多信息MongoDB发布了一个新的稳定版本 3.2,进行了大量的改进。本教程将帮助你在CentOS, RHEL 和 Fedora 系统上安装MongoDB 3.2.X第一步 —— 将MongoDB添加到yum仓库将下列内容按

2016-08-29 00:56:56 1726

原创 Node.js实现CORS跨域资源共享

什么是CORSCORS(Cross-origin resource sharing),跨域资源共享,是一份浏览器技术的规范,用来避开浏览器的同源策略简单来说就是解决跨域问题的除了jsonp外的另一种方法CORS的wiki如何使用CORS只要服务端在响应时发送一个响应的标头即可浏览器端还是照常使用ajax,支持get,post在Node.js上启用CORS参照StackOverflow上面的一个回答,

2016-08-29 00:22:55 7203

原创 mongoose连接collection后自动加s的问题

这两天折腾mongoose,发现数据成功写入集合了,但是在Terminal查询的时候却查不到 于是show collections后发现在原来的集合底下,又生成了一个加了s的集合,shenmegui查了一下,发现是mongoose.model()的问题Mongoose#model(name, [schema], [collection], [skipInit])在官方的api文档里面有解释(我不听

2016-08-28 23:58:30 5013 3

原创 Node.js用ES6原生Promise对异步函数进行封装

Promise的概念 Promise 对象用于异步(asynchronous)计算.。一个Promise对象代表着一个还未完成,但预期将来会完成的操作。Promise的几种状态:pending:初始状态,即等待操作的执行fulfilled:成功的操作rejected:失败的操作pending的状态既可以转为fulfilled,也可以转为rejected,当状态发生改变时,promise

2016-08-19 16:37:59 10163

原创 通过Gulp使用Browsersync实现浏览器实时响应文件更改

gulp是一种基于node.js的构建工具,有关构建工具的概念请移步什么是构建工具Browsersync可以让浏览器实时响应所做的文件更改,包括html, js, css, less, sass等,并自动刷新页面而且可以在多个浏览器、多个设备(PC、平板、手机等)下同时进行调试,是提高开发效率的利器

2016-08-17 01:32:20 3909

原创 Node.js exports与module.exports的关系

今天搜索module.exports时看到CNode社区上发的Hack Sparrow一篇相关文章的链接 Node.js Module – exports vs module.exports 一篇5年前的远古巨坟…网上也有相应的翻译,nodejs中exports与module.exports的区别详细介绍又看了下CNode上的一篇介绍,exports 和 module.exports 的区别下面

2016-08-16 11:03:24 514

翻译 什么是构建工具

stackoverflow上 What is a build tool? 的一个回答什么是构建工具构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接跟把代码打包成可用的或可执行的形式。基本上构建的自动化是编写或使一大部分任务自动执行的一个动作,而这些任务则是软件开发者的日常,像是:下载依赖将源代码编译成二进制代码打包生成的二进

2016-08-15 18:23:04 15293 1

原创 初学Less

Less入门

2016-08-15 16:27:32 1834

原创 JavaScript对寄生组合式继承的理解

有关JavaScript的几种继承方式请移步JavaScript的几种继承方式原型链的缺陷SubType.prototype = new SuperType();这样做的话,SuperType构造函数中的属性也会变成SubType原型中的属性,而我们需要SubType原型只继承SuperType原型 还有一点就是引用类型值属性的共享寄生组合式继承的理解为了结合原型链、组合继承和寄生式继承的优点,可

2016-08-11 13:56:24 489

原创 JavaScript笔记——this的取值

函数this对象在全局上下文与函数上下文中的取值绝大多数情况下,函数的调用方式决定了this的取值;在JavaScript严格模式与非严格模式下this的取值也略有区别

2016-08-09 10:38:08 499

原创 ECMAScript中关于如何获取this的定义

ECMAScript中关于如何获取this的定义,主要涉及execution context、 Lexical Environment、Environment Record的概念

2016-08-08 17:26:27 727

原创 JavaScript笔记——引用类型之Object类型和Function类型

JavaScript笔记——引用类型之Object类型和Function类型《JavaScript高级程序设计》中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型Object类型创建对象

2016-08-05 16:31:33 420

原创 bootstrap如何给.list-group加上序号

在bootstrap中,我们可以使用不带任何class的跟来创建一个有序列表,但是如果加上list-group类,样式有了,但列表前面的数字却没了。Bootstrap给list-group-item应用了display:block; 所以显示不了序号,因此我们只要修改一下list item的display就能把序号找回来了 .list-group{

2016-08-02 10:02:01 1730

原创 checkbox全选与反选

用原生JavaScript与JQuery实现checkbox的全选与反选

2016-07-27 12:54:26 661

原创 JavaScript的几种继承方式

JavaScript的几种继承方式原型链、借用构造函数、组合继承、原型式继承、寄生式继承、寄生组合式继承

2016-07-15 12:42:18 616

原创 JavaScript创建对象的几种模式

看《JavaScript高级程序设计》做的一些笔记。工厂模式、构造函数模式、原型模式、组合使用构造函数模式和原型模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式

2016-07-14 16:02:40 471

原创 script标签不带属性与带async、defer的区别

当页面解析到script标签时,会停止解析并下载对应的脚本,并马上执行,执行完毕后再继续解析页面async 在下载脚本的同时不会停止解析HTML,但是在下载完成后会停止解析并开始执行,执行完毕后继续解析页面defer 下载脚本时跟async一样不会停止解析HTML,下载完毕后会延迟到页面解析完后执行参考:http://www.growingwit

2016-07-13 11:41:49 1914

原创 dataTransfer.getData()在dragover,dragenter,dragleave中无法获取数据的问题

做拖拽相关效果时,想在ondragover时给被拖拽元素添加一些样式,于是在dragover事件的函数中通过dataTransfer.getData()获取在dragstart中设置的数据,然而发现dataTransfer.getData()所返回的数据为空。查询资料发现dataTransfer.setData()中所设置的数据是存储在drag data store中,而根据W3C标准,dra

2016-05-15 03:30:04 9090

原创 UWP ComboBox下拉选项滚动循环问题

在UWP开发中遇到个小问题,ComboBox的Item太多的话,列表会重复,并且无限循环,Google了一下后发现这貌似是Metro应用的老问题了,由于ComboBox的Items使用的是CarouselPanel而导致的。解决方法:改变ComboBox的ItemsPanelTemplate为StackPanel

2015-11-30 17:51:05 2519 2

原创 关于新增元素使用jQuery on()方法重复绑定的问题

使用ajax时用on()对新增元素的事件绑定问题

2015-06-08 15:27:30 3128 2

原创 pushState()、popstate事件配合ajax实现浏览器前进后退页面局部刷新

用ajax,pushState(),popstate实现浏览器前进后退页面局部刷新

2015-06-06 23:06:16 7234

空空如也

空空如也

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

TA关注的人

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