plh

Results 91 issues of plh

### [搭建的例子](https://github.com/pengliheng/docker-learn) ### docker 基本概念 - image 镜像 其实就是操作系统的抽象集合,他可以是nginx 也可以是 mysql, 也可以是Ubuntu,Centos - container 容器 image快照 + 一系列部署操作的抽象集合, ``` docker ps # 查看运行的container docker ps -a # 查看所有的快照 ``` ######...

学习
博客
docker

### 前言 所有远程ssh 必须加上下面的命令才能正常 ```bash # /etc/ssh/sshd_config 文件 GatewayPorts yes # 重启ssh /sbin/service sshd restart ``` ### ssh登陆服务器 密码登录 ```bash ssh @ ``` 正常情况下是需要输入密码的,但是我已经实现了免密登录。 ![image](https://user-images.githubusercontent.com/14355994/44943647-3194cf80-adfc-11e8-944f-07b46abe65ea.png) ### key登录 现在本地.ssh目录下生成key,一直按回车就可以自动生成了。 ```bash cd...

HTTP

用法我就不多说了,跟jquery差不多,而且目前也就~我一个人用~我不用jQuery。 ```js class Query { constructor(selector) { this.elements = document.querySelectorAll(selector); this.author = 'pengliheng'; this.version = '0.0.1'; } // 写方法 css(key, val) { this.elements.forEach((dom) => { dom.style[key] = val; }); return...

学习
博客
javaScript
框架

# [效果展示](https://work.pipk.top/clock) ### 前言 我就写写... ### 第一步 当然是新建一个JSON文件 [Map.js](http://pipk.top:8080/vueshop/src/pc/pages/clock/map.js),他就是一个类似地图的东西。 ### 第二步 vue实例中的methods方法下面新建一个init方法 在mounted方法下面调用init这个方法。 调用方式`this.init()`,先说主思路,时钟作为底层canvas,它每秒更新一次,小球作为表层canvas,它50ms更新一次,事实上为什么是50ms呢,因为它比60ms要小其次50被整除是一个整数,方便计算。 嗯嗯,由于绘制时钟比较简单,我将drawClock方法中同时包括了绘制以及时刻调用自我,不断更新canvas。而更新小球这一图层,比较复杂。包括以下步骤: - 首先,提供一个数组给他储存一系列小球的相关数据,x,y,color,stepX轴速度,stepY轴速度,disY轴加速度。这个是小球的数据结构。这个就是`updateBalls()`方法要做的事情,时刻根据速度以及加速度,更新自己那个x,y坐标。 ```js init(){ //更新时钟 setInterval(()=>{ this.drawClock(); },1000); //更新小球 setInterval(()=>{ //更新小球状态 this.updateBalls(); // //渲染 this.renderBalls();...

博客
javaScript

### 阿里 外包 阿里的同学真给力,长达50分钟的电话初面。 **hr:** 你好,我是阿里的,说说你现在工作内容吧。 **我:** 我现在在做公司后台系统,用vue重构,同时做小程序。 **hr:** 你在做的过程中,遇到的难题,克服的困难。 **我:** 小程序商品详情页面有个弹框,我负责实现他的功能,让他在同时满足3个条件的情况下弹出,(这不是我的店铺,我第一次进到商品详情页面,我有店铺可以回去)才弹出该弹框。 **hr:** 嗯嗯,还有呢? **我:** 公司业务做得少。(本来想说上家公司的那个webpack分批打包业务的。有点捉急mmp)说个自己的项目吧,最近有做一个围住神经猫的小游戏,遇到的困难自然是A*算法,路径问题,*……%¥&…… **hr:** 这个用库就可以了,网络上一堆,我想问的是,你做的东西对公司有什么帮助,你能不能说一些和公司业务相关的东西。这个问题就算了,你说一下,现在有一个数组,用一个函数就可以得到他的所有名字 **我:** arr.filter(e=>e.name==='peng').map(e=>e.name); O(1)复杂度吧。 **hr:** 用一个函数就做到它。 **我:** 不会,只能用两个。答案如下。。。 ```js var arr = [...

javaScript
diary

### 第一章 现代前端基础技术 #### 前端解构的开发时期实现模式的前后经历,以及演变 - 静态黄页 - 服务器组装动态网页数据 - 后端为主的MVC模式 - 前后端分离 - 纯前端MV*为主,中间层直出 - 前端Virtual DOM,MV*前后端同构包括以next-react,nuxt-vue的后端渲染模式 #### 我们在打开浏览器输入一个URL到页面展示这个过程中,浏览器和服务器都发生了什么? - 在接受url时候,对url进行判断,如果是HTTP就按照HTTP方式进行处理 - 调用浏览器引擎中的对比方法,比如Webview中的loadUrl方法. - 通过DNS解析获取该网站地址对应IP地址,查询完成后连接同浏览器的Cookie,userAgent等信息向目标网站发出的GET请求。 - 进行http协议会话,浏览器客户端向web服务器发送报文。 - 进入网站后台的web服务器处理请求,如apache,Tomcat,nodejs等服务器。...

学习
博客
看书
项目架构

### 前言 反正都是要背的 ### 1XX | 状态码 | 英文 | 解释 | |:-:|:-:|:-:| | 100 | Contoinue | 继续接受请求 | | 101 | Switch Protocol | 切换http协议,比如切换到更高级的http协议 | ### 2XX...

学习
博客
挖坑

### XSS Cross Site Script - 跨站点脚本攻击 比如留言系统中插入可执行脚本`alert('bad!')`,由于我的聊天室是react做的,内置就防止这种攻击。 总体来说,XSS分三类 - 存储型XSS 数据库中有一段可执行的代码 - 反射型XSS 有这样一个输入框,输入聊天信息。返回相应信息在页面 - DOM-XSS。 ```js http://www.some.site/page.html?default=alert(document.cookie) ``` 如果用户点击了 如果后台同时不对url进行检查 如果用的ie8以下的浏览器,那就会被hack 如何预防xss攻击呢?输入法过滤嘛 ![image](https://user-images.githubusercontent.com/14355994/42373127-9b10fd68-8146-11e8-92b6-5ca291cb4322.png) 用react嘛, ### SQL 注入攻击 给数据库插入一段可执行的sql语句,反正我不会写sql语句。...

学习
博客

###### 看一本js书好不好,主要看他对于面向对象的描述以及原型继承的描述。 ### 第五章 继承 如何学习创建对象时理解面向对象js编程的第一步,而第二部是理解继承。 #### 5.1 原型对象链和Object.prototype JavaScript内建的继承方法被称之为原型对象链,又称之为原型对象继承。如果上一章所看,原型对象的属性可经由对象实例访问,这就是继承的一种形式。对象实例继承了原型对象的属性。因为原型对象也是一个对象。他也有自己的原型并继承其属性。因此可以说所有对象都继承自Object。 #### 5.1.1 继承自 Object.prototype 的方法 前几章里用到的多个方法其实都是定义在Object.prototype上的。因此可以被其他对象继承,这些方法如下。 | 方法 | 定义 | |:-:|:-:| | hasOwnProperty() | 检查是否存在一个给定名字的自有属性 | | propertyIsEnumerable() |...

学习
博客
javaScript
看书

### 狗一样的设计模式 总是被发布订阅模式这么高大上的名字吓唬,,才发现,很简单的就实现了。其实浏览器的点击事件绑定同样是发布订阅模式。 #### on - 就是订阅的意思 将新的代码推入队列,依次进行订阅。 #### emit - 就是发布的意思 将订阅的代码队列先入后出顺序执行。 #### 代码如下: ```js // 一个简单的事件订阅发布的实现,取代原始Event对象,提升IE下的兼容性 class LoadEvent { constructor () { this.listeners = {} } on (eventName,...

javaScript