- 博客(94)
- 问答 (3)
- 收藏
- 关注

原创 深入理解JS继承和原型链
对于那些熟悉基于类的面向对象语言(Java 或者 C++)的开发者来说,JavaScript 的语法是比较怪异的,这是由于 JavaScript 是一门动态语言,而且它没有类的概念( ES6 新增了class 关键字,但只是语法糖,JavaScript 仍旧是基于原型)。涉及到继承这一块,Javascript 只有一种结构,那就是:对象。在 javaScript 中,每个对象都有一个指
2016-12-17 11:18:40
5254
3

原创 MySQL优化详解
MYSQL优化MYSQL优化主要分为以下四大方面:设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。架构:主从复制,读写分离,负载均衡。合理SQL:测试,经验。一、存储引擎在创建表的时候我们使用sql语句,Create table tableName () engine=myisam|innodb; 这里就指明了存储引擎是myisam还是innodb
2016-10-19 16:52:03
4240
1

原创 Laravel数据库操作的三种方式
Laravel提供了3种操作数据库方式:DB facade(原始方式)、查询构造器和Eloquent ORM。下面我将逐一讲解。数据库的配置文件在config目录下的database.php里。打开这个文件,找到mysql的配置项。这里有个env,它其实是调用了laravel根目录下的.env文件,这个文件存储了数据库的配置信息。打开它。修改为项目的数据库信息即可。
2016-10-15 20:45:35
127429
6

原创 Win10系统下WampServer不能正常运行原因深度探索
升级Win10后,发现原来的WampServer无法正常运行了,甚是郁闷,后来查了很多资料,终于解决了这个问题。欣喜之情不觉溢于言表,所以写这篇博客,希望能帮到大家。WampServer无法正常运行无非有以下几个原因: 1.安装运行WampServer2.5时提示“计算机中丢失 MSVCR110.dll” 安装WampServer2.5的过程中就出
2016-05-26 12:16:04
11119
1
原创 Vue全家桶+Socket.io+Express/Koa2打造网页版手机QQ
Vue全家桶+Socket.io+Express/Koa2打造的网页版手机QQ(web app),高仿手机QQ7.1.0版本预览在线预览地址:http://lenshen.com:8080/技术栈Vue2.0:实现前端页面构建Vuex:实现不同组件间的状态共享Vue-router:页面路由切换,实现单页的核心vueg:页面复杂场景切换效果Socket.io:实现实时
2017-07-29 23:25:12
5645
原创 vue 使用 axios 发 post 请求,后台无法接收到数据
解决办法:安装body-parser 就可以了,body 是主体的意思,parser 解析器。第一步安装:npm install --save body-parser第二步导入:var bodyParser = require('body-parser');第三步使用:body-parser 是一个中间件,用 app.use() 加载一下即可。app.use(b
2017-06-13 01:17:54
18490
原创 JS笔试面试题(后续更新)
1. 下面代码的运行结果是?var length = 10;function fn() { console.log(this.length);}var obj = { length: 5, method: function(fn) { fn(); arguments[0](); }}obj.method(fn, 1);答案:10 2解析:首先,fn(
2017-06-03 11:04:38
896
原创 shell 数组 循环
#!/bin/basharray=(1 2 3 4 5) #以括号括起为数组 中间是空格for num in "${array[@]}" #以这种for打印数组do echo $numdonexxx[0]='a' #第二种定义数组的方法xxx[1]='b'xxx[2]='c'for ((i=0; i<${#xxx[@]};i++)); do # ${#xxx[@]} 返回数组
2017-06-02 19:20:11
4045
原创 linux下安装nodejs
直接按照以下命令输入即可:[root@lensh] cd ~ (进入到root的家目录,即 /root)[root@lensh] wget https://npm.taobao.org/mirrors/node/v6.10.3/node-v6.10.3-linux-x64.tar.xz (安装源码包)[root@lensh] xz -d **.tar.xz [root@len
2017-06-01 23:07:36
645
转载 React组件性能优化
React仅仅专注于UI层;它使用虚拟DOM技术,以保证它UI的高速渲染;它使用单向数据流,因此它数据绑定更加简单;那么它内部是如何保持简单高效的UI渲染呢?React不直接操作DOM,它在内存中维护一个快速响应的DOM描述,render方法返回一个DOM的描述,React能够计算出两个DOM描述的差异,然后更新浏览器中的DOM。就是说React在接收到props或者state更新
2017-05-24 00:03:26
1309
转载 Apache重写规则解析
1、.htaccess文件使用前提.htaccess的主要作用就是实现url改写,也就是当浏览器通过url访问到服务器某个文件夹时,作为主人,我们可以来接待这个url,具体地怎样接待它,就是此文件的作用。所有的访问都是通过URL实现,所以.htaccess的作用非同小可。正因为此,所以一般地网站通过设 置.htaccess,通过一个十分友好的url吸引用户进来,然后用.htaccess把用户带
2017-05-23 23:17:06
1130
原创 TypeError: io.sockets.socket is not a function 解决方案
近日使用socket.io开发即时聊天应用程序时遇到这么一个问题,就是使用io.sockets.socket(socketid).emit('String', data) 给指定的客户端发送消息时,报了一个 TypeError: io.sockets.socket is not a function 的错误,找了很久的原因,原来是当socket.io版本大于1.0.x时,我们应该使用 io.t
2017-05-11 00:57:28
10924
原创 React组件生命周期详解
在React组件的整个生命周期中,随着该组件的props或者state发生改变,其DOM表现也会有相应的变化。一个组件就是一个状态机,对于特定地输入,它总返回一致的输出。一个React组件的生命周期分为三个部分:实例化(mounted)、存在期(update)和销毁时(unmount)。1、mounted: 即React 组件被render解析生成对应的dom节点并被插入浏览器
2017-05-07 13:51:27
2263
原创 轻松搭建ES6开发环境
首先,你要自行查阅什么是ES6和ES5、javascript有什么关系,为什么要编译ES6。废话不多说,just go! 第一步:创建项目并让它成为npm可以管理的仓库。 新建一个项目,名字假设为test,然后打开命令行,用cd进入到这个目录,在命令行里输入npm init,回车。接下来会有很多提示,你只要一直按回车即可,然后会发现根目录下多了一个package.j
2017-04-26 18:54:44
4449
原创 语义化版本
在使用 Node.js 和 Bower 的时候,其中的 package.json 和 bower.json 都会有dependencies、devDependencies 项,对于此前端开 发的童鞋应该会比较熟悉。这里面是运行时和开发时依赖库,其中依赖库对应的版本号有很多种写法,诸如:”~1.0.2“, “^1.0“, “>=1.0.2“等,其实可以猜测这种写法代表了某种范围,至于具体含义
2017-04-24 23:16:31
558
原创 原生JS实现split()
原生JS实现split function split(str,operation){ var temp=[]; var arr=[]; for(var i=0;i<str.length;i++){ if(str[i]==operation) temp.push(i); } arr.push(str.sub
2017-04-19 21:41:41
4135
2
原创 动态规划-----最长公共连续子串
牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。输入描述:输入为两行字符串(可能包含空格),长度均小于等于50输出描述:输出为一个整数,表示最长公共连续子串的长度输入例子:abcdeabgde输出例子:2解题思路:这题其实是动态规划的变形经典题型,应用动态规划的思想,创建一个二
2017-04-09 18:33:21
19662
原创 通过考试(京东2017实习生真题)
题目描述:小明同学要参加一场考试,考试一共有n道题目,小明必须做对至少60%的题目才能通过考试。考试结束后,小明估算出每题做对的概率,p1,p2,...,pn。你能帮他算出他通过考试的概率吗?输入输入第一行一个数n(1输出小明通过考试的概率,最后结果四舍五入,保留小数点后五位。样例输入450 50 50 50样例输
2017-04-08 18:32:37
802
原创 Sublime Text 3 搭建 React.js 开发环境
Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境。1. babel-sublime支持ES6, React.js, jsx代码高亮,对 JavaScript, jQuery 也有很好的扩展。关于 babel 的更多介绍可以看这里:为什么说Babel将推动JavaScript的发展安装PC:Ctrl+s
2017-04-07 16:03:30
1881
原创 常用排序算法
一、冒泡排序 冒泡排序是最简单的排序算法。假设数组一共有n个元素,元素最大下标为n-1,冒泡排序的具体做法是:第一趟在序列(A[0]~A[n-1])中从前往后进行两个相邻元素的比较,若前者大,则交换,比较 n-1 次;第一趟排序结束,最大元素被交换到A[n-1]中,下一趟排序只需要在子序列(A[0]~A[n-2])中进行;依次类推,冒泡排序最多进行 n-1 趟。基本的冒泡排序可以利用
2017-04-05 21:26:44
395
原创 sql语句 不让结果排序,按照in语句的顺序返回结果
问题引入,假如有一张数据表结构如下:现在的需求是:查找id为7,10,2,1,5的记录,并让结果按in的顺序输出来,也就是说,结果集转换成二维数组后,二维数组里面的一维数组里的id分别是7,10,2,1,5,而不是1,2,5,7,10。如果sql语句这样写:SELECT * FROM classone WHERE id IN(7,10,2,1,5) ,那肯定是不行的,因为结
2017-04-04 22:28:19
7165
原创 二维数组排序
问题引入: 例如现在要对下面的二维数组按照姓名(name)的字典顺序升序排列:$person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'ahangsan','age'=>23), array('num'=>'003'
2017-04-04 19:44:48
8511
原创 Javascript异步编程的4种方法
你可能知道,Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Jav
2017-04-04 18:17:25
362
原创 JS模块化入门
在开发大型的web项目中,可能会使用到管理js的模块化工具。但是在前端轮子漫天飞的时代。那一款js模块化工具真正适合我们应用到开发呢?目前比较流行的模块化工具有RequireJS 、SeaJS等等。而且模块化开发工具都有不同的规范去约束例如:AMD CMD CommonJS。CommonJS说道CommonJS,学习过Node的同学会比较熟悉,CommonJS是服务器模块的规范
2017-04-04 16:57:19
521
原创 前端工程师必须掌握的5个技能
HTML5已经火了一段时间了,相信作为web相关开发工程师,肯定或多或少的了解和尝试过一些HTML5的特性和编程。还记得以前我们介绍过的HTML5新标签。 作为未来前端开发技术的潮流和风向标,HTML5绝对不容忽视。在今天这篇技术分享文章中,我们将介绍几个HTML5的重要特性,能够帮助你提高整个web应用的使用体验和开发效率,相信大家会感兴趣的!特性一:正则表达式相信大家都会非常喜欢这
2017-03-25 00:18:13
3107
原创 setInterval()之坑
首先看下面这个例子: setInterval()之坑 (function(){ var arr=[1,2,3,4,5,6]; var i=0; var timer=setInterval("printNumber()",2000); function printNumber(){ console.log(arr[i]);
2017-03-22 21:24:05
2805
原创 深入理解JS事件委托
概述:那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们讲事件委托基本上都用了同一个例子,就是取快递来解释这个现象,我仔细揣摩了一下,这个例子还真是恰当,我就不去想别的例子来解释了,借花献佛,我摘过来,大家认真领会一下事件委托到底是一个什么原理
2017-03-12 22:47:57
1974
原创 JS实现进制转换
js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用对象.toString()即可实现://10进制转为16进制(10).toString(16) // =>"a"//8进制转为16进制(012).toString(16) // =>"a"//16进制转为10进制(0x16).toString(10) // =>"22"//16进制转为8进制(0
2017-03-05 14:21:08
1118
原创 深入理解JavaScript箭头函数
箭头函数就是个简写形式的函数表达式,并且它拥有词法作用域的this值(即不会新产生自己作用域下的this,arguments,super和new.target等对象)。此外,箭头函数总是匿名的。语法基础语法(param1, param2, …, paramN) => { statements }(param1, param2, …, paramN) => expression
2016-12-23 14:23:11
28390
原创 MySQL中group_concat函数深入理解
MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])1.基本查询 mysql> select * from aa; +------+------+ | id| name | +------+---
2016-12-07 23:22:32
625
原创 几个常用的高级函数
1.php获取当前页面完整url地址的函数function get_url(){ $url = (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443') ? 'https://' : 'http://'; $url .= $_SERVER['HTTP_HOST']; $url .= isse
2016-11-25 11:38:06
1537
原创 为什么用360浏览器打开网页显示不正常而其他浏览器都正常
今天把一个项目放到线上,发现用其它浏览器显示都正常而360却乱成一团,找了很久的原因,原来用的360浏览器的模式是兼容模式,是这个兼容模式搞的鬼。对于360浏览器的极速模式与兼容模式,相信大家都不陌生,极速代表着高速,意味着是高版本的浏览器,速度快嘛。而兼容模式则是极力适合各种浏览器,考虑更多的是兼容。这两个模式在360浏览器上怎么设置呢?打开浏览器,在网址的后面有一个闪电的图标或是一个e图标
2016-11-24 20:57:01
20794
原创 商品表的sql
# tinyint : 0~255# smallint : 0~ 65535# mediumint : 0~1千6百多万# int : 0~40多亿# char 、varchar 、 text容量?# char :0~255个字符# varchar : 0~65535 字节 看表编码,如果是utf8存2万多汉字 gbk存3万多汉字# text : 0~65535 字符C
2016-11-16 11:35:45
4755
原创 PHP的继承方法如何获取子类名?
php后期静态绑定问题:例如<?phpclass A{ function __construct() { echo __CLASS__; } static function name() { echo __CLASS__; }}class B extends A{}$objB = new B()
2016-11-14 00:53:14
6451
原创 定时执行php脚本
使用PHP定时执行某些任务的话, 可以有以下两个方法:1. Linux下crontab, windows下计划任务,具体实现可以参考我之前写的一篇博客:http://blog.youkuaiyun.com/zls986992484/article/details/531088362. 使用php的相关函数set_time_limit(0);ignore_user_abort(true);//这
2016-11-10 02:14:20
2116
原创 linux使用crontab实现PHP执行定时计划任务
首先说说cron它是一个linux下的定时执行工具。根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /etc/cro
2016-11-10 01:12:16
3874
1
原创 Apache和Nginx的区别
Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优
2016-11-10 00:18:48
520
转载 PHP运行模式
PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli 命令行运行(Command Line Interface)4) web模块模式(apache等web服务器运行的模块模式)1. CGI(Common Gateway Interface)
2016-11-10 00:11:57
483
原创 PHP的错误日志
对于PHP开发者来说,一旦某个产品投入使用,应该立即将 display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。但是,任何一个产品在投入使用后,都难免会有错误出现,那么如何记录一些对开发者有用的错误报告呢?我们可以在单独的文本文件中将错误报告作为日志记录。错误日志的记录,可以帮助开发人员或者管理人员查看系统是否存在问题。如果需要将程序中的错误报告
2016-11-09 23:34:08
699
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人