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

原创 diff算法原理
snabbdom对外暴露了两个核心方法init和hinit函数会根据配置返回patch方法patch方法用于对比新老Vnode,并且将新的虚拟DOM渲染成真实DOM,是我们研究的重点。h方法用于创建Vnode。
2021-12-22 10:27:01
521

原创 手撸Vue框架
自己实现一个简单的MVVM框架,可以帮助我们更好的理解Vue框架,接下来我们将一步一步去实现自己的框架。我们不妨叫它Wue,之前有一篇文章介绍过响应式原理,这里就不作赘述。
2021-11-19 16:58:27
1188

原创 js的执行上下文
执行上下文,也叫做执行上下文环境,代码运行时环境。理解了它,能让你对js代码的执行逻辑有更清晰的认识。不用在死记硬背面试题,妈妈再也不用担心我的面试了。
2020-01-28 16:46:37
1471

原创 如何理解原型
对于那些有其他编程语言基础的同学来说,理解javascript的原型反而更加困难。我在学习初期,拿php的面向对象的思想去理解js的对象,发现根本不通呀。这货压根就没有“类”呀,没有类哪来的对象。还有什么对象都是由函数创建的,函数也是一种对象。心态崩了呀,下面我们由浅入深来探讨一下。
2020-01-28 16:44:47
306

原创 z-index之辈分不能乱
var_dump与var_export区别(PHP 4, PHP 5, PHP 7) var_dump — 打印变量的相关信息void var_dump ( mixed expression[,mixedexpression [, mixed … ] )此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。代码:
2015-12-12 15:38:24
751
原创 vue-router原理分析
vue-router作为vue生态的常用插件之一,我们有必要学习一下实现原理,能帮我们更好的理解vue的插件机制,接下来我们将自己实现一个简单路由插件。
2021-11-10 12:06:36
633
原创 js 异步机制全面分析
试想一个场景,我在页面发起了一个ajax请求,请求返回期间,我啥也做不了,只能等着,这显然是无法接受的,所以js是支持异步的,但是明明是单线程的,又如何支持异步呢?
2021-11-09 14:35:46
906
原创 mysql group by 用法
分组查询是对数据按照某个字段或多个字段进行分组,Mysql 中使用 group by 实现[group by 字段] [having <条件表达式>]字段指的是分组时依据的字段,having 用来对分组之后的数据进行筛选数据准备接下来的内容都基于如下测试数据sql如下:CREATE TABLE `score_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `student_id` int(11) NOT NUL
2020-10-27 23:19:13
547
原创 php socket实践
php官方文档对于socket编程的介绍少的可怜,好在不同的编程语言底层都是调用了相同的系统方法,参考了其他语言的socket文档,简单整理一下,方便以后查阅。socket 编程实践什么是socket什么是socketsocket的原意是插座,本文我们介绍...
2020-07-21 16:32:25
802
原创 运输层简介
运输层简介运输层服务进程到进程的通信端口号ICANN 定义的范围段套接字地址封装和解封运输层服务运输层位于网络层和应用层之间,运输层负责向应用层提供服务,同时它接受来自网络层的服务。进程到进程的通信运输层协议主要负责进程到进程间的通信。进程可以理解未是使用了运输层服务的应用层实体。比如nginx进程,mysql进程等,都需要把数据传给运输层,由运输层负责把数据报传输到正确的目标主机的目标进程。但是主机到主机的通信是由网络层负责的,网络层协议只能把报文交付给目的计算机,但这并不是完整的交付,报文
2020-07-09 16:22:34
818
原创 Mysql 锁机制全面解析
为什么加锁无论何时,只要有多个查询需要在同一时刻修改数据,就会有并发控制的问题。我们以 unix 系统的email box 为例。典型的 mbox 文件格式是非常简单的。一个mbox中所有的邮件都串行在一起,彼此首尾相连。这种格式对于读取和分析邮件信息非常友好,同时投递邮件也很容易,只要在文件末尾附加新的邮件内容即可。那如果两个进程同时投递邮件会怎样?可想而知,如果不增加锁机制,邮件内容势必会乱序追加,这肯定是不合理的。like this…那如果一个进程正在读邮件,而另一个进程要删除邮件,又该怎
2020-06-15 18:56:11
533
1
原创 linux 硬链接和软连接(符号连接) 原理
命令使用ln 用来创建硬链接lb -s 用来创建软连接我们来看看命令的使用方法[user_00@localhost ~]$ ln --helpUsage: ln [OPTION]... [-T] TARGET LINK_NAME (1st form) or: ln [OPTION]... TARGET (2nd form) or: ln [OPTION]... TARGET... DIRECTORY (3rd form) or: ln
2020-06-15 11:33:30
1489
原创 linux w命令的使用
w命令 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。[user_00@localhost ~]$ w --helpUsage: w [options]Options: -h, --no-header do not print header 不打印标题,默认是打印标题的 -u, --no-current igno
2020-06-10 11:44:00
528
原创 linux下的打包压缩gzip,gunzip,tar
gzip 压缩gzip = gun + zipXYBJM01617:d2 csw$ gzip -hApple gzip 272.201.1usage: gzip [-123456789acdfhklLNnqrtVv] [-S .suffix] [<file> [<file> ...]] -1 --fast fastest (worst) compression 最快(最糟糕)的方式压缩文件 -2 .. -8 set
2020-06-08 18:55:19
1211
原创 mysqld_multi配置
当我们一台机器启动了多个mysql实例的时候,管理起来简直就是灾难。官方提供的mysqld_multi帮我们完美解决这个问题。mysqld_multi用于管理多个mysqld进程,这些进程侦听不同Unix套接字文件和TCP / IP端口上的连接。它可以启动或停止服务器,或报告其当前状态。配置文件mysqld_multi其实是将多个实例的配置文件整合到了一起。每个实例都会有对应的选项组编号,GNR(option group number)。通过指定编号的方式来操作不同的实例那我们先来看下配置文件长什么
2020-05-27 18:52:01
1074
原创 简单的实现MVVM框架
在前端领域, MVVM的出现无疑极大的节省了开发人员的心智,用 jquery 操作dom渲染页面的日子一去不复返。Model:数据模型View:视图View-Model:Model和View的桥梁,通过它,数据模型的变化可以直接反应到视图上,同样在视图上修改数据也会反应到数据模型。所以 MVVM的核心在于,数据驱动视图和双向数据绑定。
2020-05-27 15:22:05
460
原创 同时启动多个mysql实例
mysqld_multi用于管理多个mysqld进程,这些进程侦听不同Unix套接字文件和TCP / IP端口上的连接。它可以启动或停止服务器,或报告其当前状态。初始化数据目录在同一台机器部署多个Mysql服务,不同的数据库实例要对应不同的数据目录,否则会使用相同的数据。这在业务上是没有适用的场景的。官方也提出,这样并不会增加线程优势,反而会带来不可预估的问题。初始化数据目录:mysql_install_db --user=csw --datadir=/usr/local/var/mysql3
2020-05-21 16:19:52
932
原创 如何快速使用nginx搭建https站点
如何在nginx上配置https服务证书准备如果是线上服务,需要使用经过CA认证中心认证之后的证书(不然用户浏览器会报不安全警告)。如果仅作测试使用,则可以跳过认证中心,使用自签名证书。nginx配置server { listen 443 ssl; server_name ssl.csw.com; #证书文件 ssl_certificate server.crt; #私钥文件 ssl
2020-05-08 18:46:47
329
转载 openssl 生成自签名证书
生成私钥openssl genrsa -out server.key 1024genrsa : 使用rsa算法-desc:表示生成的key是有密码保护的(注:如果是将生成的key与server的证书一起使用,最好不需要密码,就是不要这个参数,否则其它人就会在请求的时候每次都要求输入密码-out: 指定输出文件1024: 生成key的大小,单为字节(bits)生成证书申请openssl req -new -key server.key -out server.csr使用上面的命令就会创建一
2020-05-08 18:22:57
527
原创 mac os operation not permitted
今天安装php扩展的时候扩展文件始终无法放到指定目录。明明是root用户,总是会报operation not permitted,最后破案,是mac系统完整性保护机制(SIP)的原因mac SIPSIP 全称为「System Integrity Protection」即「系统完整性保护」,是 OS X El Capitan 时开始采用的一项安全技术,SIP 将一些文件目录和系统应用保护了起来。...
2020-04-22 13:27:32
592
原创 防抖与节流
前言公司有多台服务器,必须先登录跳板机,再从跳板机登录服务器,频繁的输入命令很繁琐,有没有更好的方式去实现。expect 可以完美的帮助你涉及概念Tcl:(Tool command language)一种很强大的脚本语言expect: 基于Tcl开发的语言包,请自行安装except核心命令send:命令向进程发送字符串。expect:命令等待进程的某些字符串。expect支持...
2020-01-28 16:50:45
542
1
原创 or连接是否会使用索引
or连接条件字段,全部设置索引的时候,才会使用索引,否则将不会使用索引。验证如下:数据表结构如下create TABLE book(bookid INT NOT NULL primary key auto_increment,bookname VARCHAR(255) NOT NULL ,authors VARCHAR(255) NOT NULL,info VARCH...
2018-08-22 23:10:30
8269
2
原创 你真的懂单例模式吗
浅谈单例模式 参考百度经验单例模式顾名思义,就是对于指定的类只有一个实例,这样可以节省系统资源,也省去过多的实例化导致对象版本太多,不易管理。1。首先需要保证该类不可以通过new来实例化。因为如果可以这样,那么就无法保证单例了。只需要把构造方法设置为private或者protected即可。2。既然外部无法访问构造方法,那么也就无法实例化,就保证只能内部实例化,返回对象,那么就需要一个静态方法来,
2016-06-21 10:39:20
624
原创 解析加密后的js
今天试着抓取一个网站的数据,发现网站加了cookie限制,浏览器一共访问三次才可以访问到主页,第一次访问会通过js修改本地cookie,然后js(加密过-_-!)会刷新本页带着更新后的cookie,第二次访问返回的头信息中再次对cookie进行更改,并进行302重定向,第三次访问才最终访问到网站数据。坑啊,抓个网站这么麻烦。1.分析一下,第一次访问,js是加密过的,首先需要解决加密问题,用的php抓
2016-03-30 19:51:12
6052
原创 php安装memcache扩展
*首先需要下载扩展文件下载链接*解压之后会看到php_memcache.dll文件,将此文件放到bin/php/php5.5/ext/文件夹下面*打开php.ini文件 添加 extension=php_memcache.dll然后通过phpinfo 查看扩展否已经安装上。
2016-03-15 18:15:21
448
原创 php thread扩展的使用
安装教程请参考thread安装直接上一段简单的代码<?php class test extends Thread { public function __construct($fun) { $this->fun=$fun; } public function run() { $param=$this->fun; $this->$param(); } privat
2016-03-15 08:59:39
4017
原创 wamp下安装thread扩展
php多线程支持需要安装扩展包threads 下载地址:threads下载 *下载前需要知道php版本,Thread Safety,以及操作系统位数。 *Thread Safety已通过phpinfo查看,如果是enable表示是TS线程安全型,否则是nTS线程非安全型。需要下载的文件名称格式 php_pthreads-2.0.7-5.3-ts-vc9-x86.zip 依次对应threads
2016-03-14 18:21:32
993
原创 Curl cookie设置
有些网站为了防止非法爬取信息会在cookie里 添加一些信息,我们可以通过curl的cookie设置功能来访问网站示范网站:http://wenshu.court.gov.cn/1.首次访问网站,我们点开浏览器的F12看一下信息我们可以看到有个302重定向返回,我们打开看一下具体返回信息。 我们可以看到返回的信息中对cookie进行了设置,然后重定向到首页 我们可以通过curl对cookie
2016-03-07 20:55:11
9989
1
原创 模拟登陆微信公众平台
通过curl来实现模拟登陆微信公众平台<?php function get_cookie(){ //获取cookie $url="https://mp.weixin.qq.com/cgi-bin/login"; $username=''; //自己的公众平台账号 $pwd=''; //
2016-03-01 18:13:24
1560
原创 H5画布画表格
H5画表格<!DOCTYPE HTML><html><head><meta charset="utf-8"></head><body><form action="#" method="post" > <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCCCCC">
2016-03-01 12:51:37
7446
原创 php面试题
面试题 1.在页面中引用CSS有几种方式? 引入外部css文件 <link href="bootstrap.min.css"rel="stylesheet">内部定义style样式<style type="text/css"> p{ margin:20px; }</style>内联样式<img style="height:
2016-02-22 22:01:36
464
原创 文章标题
面试题 1.用最少的代码写一个求3值最大值的函数. max()函数可以直接返回多个参数中最大的一个; function max_val($a,$b,$c) { return $a >$b($a >$c : $a ?$c) :($b >$c : $b ?$c); }2.抓取远程图片到本地,你会用什么函数? fsockopen(); fopen()
2016-02-22 21:31:45
347
原创 php面试题整理
从今天起每天收集php面试资料,为了找个好工作,更为了技术提升。1. 简述POST 和GET传输的最大容量分别是多少? Get受url长度限制,与浏览器和操作系统有关,例如IE对URL长度的限制是2083字节(2K+35) Post的话限制取决于服务器设置。 2.禁用COOKIE 后 SEESION 还能用吗? 可以,默认情况下sessionid是由cookie保存的
2016-02-22 20:12:11
466
转载 unexpected end of file
syntax error, unexpected end of file in。。。的解决方法Parse error: syntax error, unexpected end of file in .php on line ,然后我就根据提示,找到那个文件,然后错误中总是提示最后一行出错,我找到最后一行发现是,晕的,这能有什么错误,找了好久才找到问题所在,拿来分享。 出现这个错误的原因就是语法错
2016-01-14 14:11:30
1307
原创 PHP查看常量
如何查看php系统常量与自定义常量(PHP 4 >= 4.1.0, PHP 5, PHP 7) get_defined_constants — 返回所有常量的关联数组,键是常量名,值是常量值array get_defined_constants ([ bool $categorize = false ] ) 返回当前所有已定义的常量名和值。 这包含 define() 函数所创建的,也包含了所有扩
2015-12-30 22:43:01
1018
原创 PHP文件缓存
项目中要用到临时存储一个数组,于是想利用PHP的文件操作来临时存储数组。步骤1: 首先需要创建一个文件用到PHP文件操作相关函数(PHP 4, PHP 5, PHP 7) fopen — 打开文件或者 URLresource fopen ( string filename,stringfilename , string mode [, bool useincludepath=false[,re
2015-12-12 16:56:40
816
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人