自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴孔云的博客

write less, do more

  • 博客(61)
  • 资源 (5)
  • 收藏
  • 关注

原创 git submodule 完整用法整理

最近有个项目遇到有子模块,遂整理下。。牛逼的人感觉看官网就行,像我这种菜鸟总是需要反复记忆,git官网链接戳此。1.先来个官方的APIgit submodule [--quiet] add [<options>] [--] <repository> [<path>]git submodule [--

2018-08-11 19:17:32 31884 2

原创 Vue与React的异同-组件(二)

Vue与React都鼓励组件化应用,即将应用分拆成一个个功能明确的模块,每个模块之间可以通过合适的方式互相联系,但各自的实现略有不同。以下谈谈我的理解,如有不对,欢迎指正在Vue组件中,有几个观念和React相差比较大,我觉得主要有以下这几点:Vue组件分为全局注册和局部注册,在react中都是通过import相应组件,然后模版中引用props是可以动态变化的,子组件也实时更新,在r

2018-01-20 11:58:24 3506

转载 XMLHttpRequest使用指南大全

Ajax和XMLHttpRequest我们通常将Ajax等同于XMLHttpRequest,但细究起来它们两个是属于不同维度的2个概念。 以下是我认为对Ajax较为准确的解释:(摘自what is Ajax) AJAX stands for Asynchronous JavaScript and XML. AJAX is a new technique for creating

2018-01-10 16:35:38 7141 2

原创 Vue与React的异同—生命周期(一)

React与Vue都有lifecycle生命周期的概念,表示每个组件实例在被创建之前都要经过一系列的初始化过程。比如设置数据监听、编译模板、挂载实例到视图、在数据变化时更新视图等。Vue生命周期 所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着 你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fe

2018-01-09 19:44:42 4328 1

原创 深入理解xhr的responseType中blob和arrayBuffer

最近有个需求,服务器端下载视频,存储到本地,然后再播放,下载存储后播放不了。debug后发现是responseType未正确设置。一般的xhr请求 let url = window.URL || window.webkitURL; let xhr = new XMLHttpRequest(); xhr.open(method, url, [,async=tr

2017-10-14 10:28:22 60495

原创 详解ES7的async及webpack配置async

项目中有个需求,类似视频网站下载视频,比如有5个case,每个case有数量不等的的video需要从服务端下载,并且video的下载顺序是串联的,只有当正在下载的case下载完才能下载另外一个case,否则下一个case处于wait状态。如何解决此问题使用Promise 利用promise的then方法,但是因为无法确定每个case的video的数量,导致不能确定后面应该接几个t

2017-10-12 09:07:26 5592

原创 js正则表达式(一)

最近对正则表达式又不熟悉了,故重新疏漏API,以后每日写一个正则来练习提升正则表达式中特殊字符的含义字符类别(Character Classes). //matches any single character excepet line terminators: \n, \r\d //Matchees any digit ==[0-9]\D //Matches any charact

2017-09-18 12:35:40 758

原创 cordova 安卓开发环境搭建(Mac OSX

安装JDK下载JDK,可到以下oracle官网下载: http://www.oracle.com/technetwork/java/javase/downloads/index.html 需要选择对应的版本,选择jdk-8u111-macosx-x64.dmg,然后双击安装!!! 注:这个地方一定要1.8的版本或以上,否则在 cordova build android 的时候会出现 Uns

2017-09-14 13:58:35 2914

转载 移动端Web页面常见问题解决

安卓浏览器看背景图片,有些设备会模糊。用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960*640分辨率,在网页里只显示了480320,这样devicePixelRatio=2。现在android比较乱,有1.5的,有2的也有3的。想让

2017-09-12 11:40:35 2267

原创 解析Web Workers

详解Web Workres理念Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。线程可以执行任务而不干扰用户界面。此外,他们可以使用XMLHttpRequest执行 I/O (尽管responseXML和通道属性总是为空)。一旦创建, 一个worker 可以将消息发送到创建它的JavaScript代码, 通过将消息发布到该代码指定的事件处理程序 (反之亦然)

2017-09-07 17:35:16 805

原创 html5的video在IOS端默认全屏和黑屏问题

最近项目中需要使用video来代替有点复杂的动画(video循环自动播放),遇到了使用过程中的两个坑ios端默认全屏解决办法查阅资料说在在video标签加如下属性<video webkit-playsinline="webkit-playsinline"></video>无奈测试机是ios10,上面这段代码在iOS8,9下生效 因项目是react工匠,不支持除data-*之外的自定义属性,需在c

2017-09-07 14:35:03 20155 4

原创 js浮点数加减乘除

解决js浮点数加减乘除不准确的问题

2017-09-07 11:44:46 406

转载 关于Function.prototype.apply.call的一些补充

宿主对象,在javascript中有三类对象,本地对象,内置对象和宿主对象。其他两类暂且不提,宿主对象是指什么呢(DOM BOM),控制台对象是文档对象模型的扩展,也被认为是宿主对象。那么,它们有什么缺陷呢?在IE9之前,宿主对象不是继承自Object,它们的方法也不继承自Function,IE9之后就大有改进了。看下IE8与IE9的document.getElementByIdie8:ie9:我

2017-02-24 12:38:21 967

原创 从前端模块化的概念来理解Webpack

为什么需要模块化?随着网站内容越来越复杂,浏览器和用户的交互越来越细腻,网站再也不是简单的内容呈现,更像是一个复杂的客户端软件,其中html/css/js代码越来越多,逻辑越来越复杂,越来越不便于管理,多人协作成本加深,为了解决这些问题,才出现了模块化的概念,也就是说模块化更多的是工程方面的产出,为了应对更复杂的网站开发。>在ES6之前,前端模块的实现本质都是利用JS神器:闭包。 闭包使得函数在调用

2017-02-19 19:04:52 4197

原创 前端路由相关实现

前端路由:客户端浏览器可以不依赖服务端,根据不同的URL渲染不同的视图页面。前端路由实现思路在页面不刷新的前提下实现url变化捕捉到url的变化,以便执行页面替换逻辑前端路由实现方法HASH我们经常在 url 中看到 #,这个 # 有两种情况,一个是我们所谓的锚点,比如典型的回到顶部按钮原理、Github 上各个标题之间的跳转等,路由里的 # 不叫锚点,我们称之为 hash,大型框架的路由系

2017-02-16 18:28:00 481

原创 webpack相关问题记录

编译scss文件安装node-sass编译sass文件需要两个模块sass-loader和node-sass,如果通过npm install node-sass -save-dev不成功,可以通过写入package.json文件中"sass-loader": "^4.1.1","node-sass": "^3.4.2",再通过npm install依赖安装

2017-01-23 17:09:30 513

原创 NPM配置问题

配置npm的全局模块的存放路径以及cache的路径启动CMD,输入npm config set prefix "D:\Program Files\nodejs\node_global"npm config set cache "D:\Program Files\nodejs\node_cache" 公司电脑,换了个用户,之前安装npm在另外个目录下,导致默认还是otheruser的配置,并且np

2017-01-20 16:49:59 727

原创 NPM常用命令

npm是什么NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。npm install 安装模块npm install (with no args, in package dir)npm install [<@scope>/]<name>npm install [<@sco

2017-01-10 15:11:44 12164 2

原创 js对象属性的getter和setter

在看Vue的API时,里面提到修改Model层,会实时更新View视图,底层原理利用的是ES5的getter和setter方法,通过 Object.defineProperty 把属性全部转为 getter/setter。故温故一遍getter和setter定义属性的方法。通过对象字面量定义get和set方法有个注意的地方,get与set的函数体都不能再定义本身该属性,否则执行的时候会陷入死循环,

2017-01-03 17:02:01 6553

原创 详解javascript作用域和闭包

参考书籍《你不知道的javascript的上卷》作用域是什么现代JavaScript已经不再是解释执行的,而是编译执行的。但是与传统的编译语言不同,它不是提前编译,编译结果不能进行移植。编译过程中,同样会经过分词/词法分析,解析/语法分析,代码生成三个阶段。以var a = 2;语句为例,对这一程序语句对处理,需要经过引擎,编译器,作用域三者的配合。其中,引擎从头到尾负责整个javascrip

2016-12-14 11:21:47 581

转载 JS自定义事件原生

说在开始,Javascript自定义事件类似设计的观察者模式,通过状态的变更来监听行为,主要功能解耦,易于扩展。多用于组件、模块间的交互。原型模式下的js自定义事件var EventTarget = function() { this._listener = {};};EventTarget.prototype = { constructor: this, addEven

2016-12-13 14:39:31 3535

原创 SASS相关

Sass安装和API等

2016-11-24 17:59:33 718

原创 C#中值类型和引用类型及类型的转换

在 C# 中,变量分为以下几种类型:值类型(Value types)引用类型(Reference types)指针类型(Pointer types)值类型值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的,值存储在栈中。 值类型直接包含数据。比如 int、char、float,它们分别存储数字、字母、浮点数。引用类型引用类型不包含存

2016-10-25 09:52:38 5284

原创 SQL笔记

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。DML(Data Manipulation Language)数据操作语言,用于检索或者修改数据DDL(Data Definition

2016-08-24 09:20:14 406

转载 萌萌的websocket原理解析

一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,

2016-08-17 20:14:48 554

原创 javascript运行机制:并发模型 与Event Loop

看了阮一峰老师的JavaScript 运行机制详解:再谈Event Loop和【朴灵评注】的文章,查阅网上相关资料,把自己对javascript运行模式和EVENT loop的理解整理下,不一定对,日后再看做个回顾。MDN上有张图很形象, function f(b){ var a = 12; return a+b+35;}function g(x){ var m =

2016-08-15 16:42:41 2755

原创 jsvascript—谜之this?

原文:Gentle explanation of ‘this’ keyword in JavaScript1. 迷之 this对于刚开始进行 JavaScript 编程的开发者来说,this 具有强大的魔力,它像谜团一样需要工程师们花大量的精力去真正理解它。在后端的一些编程语言中,例如 Java、PHP,this仅仅是类方法中当前对象的一个实例,它不能在方法外部被调用,这样一个简单的法则并不会造成任

2016-08-01 16:07:10 1498

原创 target,currentTarget和this三者的区别

target在事件流的目标阶段;currentTarget在事件流的捕获,目标及冒泡阶段。只有当事件流处在目标阶段的时候,两个的指向才是一样的, 而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象(注册该事件的对象)(一般为父级)。this指向永远和currentTarget指向一致(只考虑this的普通函数调用)。 <div id="ou

2016-07-08 19:30:42 9324

原创 NodeJS学习三之API

Node采用V8引擎处理JavaScript脚本,最大特点就是单线程运行,一次只能运行一个任务。这导致Node大量采用异步操作(asynchronous opertion),即任务不是马上执行,而是插在任务队列的尾部,等到前面的任务运行完后再执行。由于这种特性,某一个任务的后续操作,往往采用回调函数(callback)的形式进行定义。so也不适用于try catch捕获错误,约定回调函数的第一个参

2016-07-05 17:48:08 1805

原创 几种方法实现ajax请求内容时使用浏览器后退和前进功能

我们可以利用ajax进行无刷新改变文档内容,但是没办法去修改URL,即无法实现浏览器的前进与后退、书签的收藏功能。利用location的hash部分和使用window.onhashchange来实现,而html5的historyAPi,以及开源的PAJAX库

2016-06-17 14:35:16 7666 2

原创 浅谈 JS 创建对象的 8 种模式

javascript创建对象的8种模式:Objct 模式,工厂模式,构造器模式,通过 ,Function 对象实现,prototype 模式,构造器与原型方式的混合模式,动态原型模式,混合工厂模式

2016-06-16 11:11:58 360

转载 chrome调试JavaScript脚本

随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它。Chrome DevTools 提供了一系列实用的工具使得调试 JavaScript 应用不再是一件痛苦的事。在这个部分,我们会通过调试 Google Closure hovercard demo 以及其他的动态示例来让你了解怎么去使用这些工具。 注意:如果你是 Web 开

2016-06-15 15:07:06 839

原创 深入理解JS异步编程五(脚本异步加载)

异步脚本加载阻塞性脚本JavaScript在浏览器中被解析和执行时具有阻塞的特性,也就是说,当JavaScript代码执行时,页面的解析、渲染以及其他资源的下载都要停下来等待脚本执行完毕浏览器是按照从上到下的顺序解析页面,因此正常情况下,JavaScript脚本的执行顺序也是从上到下的,即页面上先出现的代码或先被引入的代码总是被先执行,即使是允许并行下载JavaScript文件时也是如此。注意我们这

2016-06-04 08:30:23 2474

转载 深入理解JS异步编程四(HTML5 Web Worker)

>Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面。一:如何使用WorkerWeb Worker的基本原理就是在当前javascript的主线程中,使用Worker类加载一个javascript文件来开辟一个新的线程,起到互不阻塞执行的效果,并且提供主线程和新线程之间数据交换的接口:pos

2016-06-04 08:11:18 4649

原创 深入理解JS异步编程三(promise)

Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。

2016-06-02 08:56:36 700

原创 深入理解JS异步编程二(分布式事件)

一个PubSub模型主要方法有3个,订阅,退订,发布

2016-06-01 08:20:45 1186

原创 深入理解JS异步编程(一)

js事件概念异步回调首先了讲讲js中 两个方法 setTimeout()和 setInterval()定义和用法:setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。语法:setTimeout(callback,time)callback 必需。要调用的函数后要执行的 JavaScript 代码串。time 必需。在执行代码前需等待的毫秒数。setInterval(

2016-05-27 13:46:57 643

转载 不定高多行溢出文本省略

多行文本溢出省略

2016-05-25 18:02:40 904

原创 深入解析js中基本数据类型与引用类型,函数参数传递的区别

ECMAScript的数据有两种类型:基本类型值和引用类型值,基本类型指的是简单的数据段,引用类型指的是可能由多个值构成的对象。Undefined、Null、Boolean、Number和String是值类型,其他都是引用类型。其他语言String是以对象的形式表示,ECMAScript放弃了这一传统。内存中的存储区域值类型存储在栈中,引用类型存储在堆中。内存中是分为两个区域的,一个是栈:它就是专

2016-05-23 20:30:04 5186

原创 javascript的replace+正则 实现ES6的字符串模版

采用拼接字符串的形式,将 JSON 数据嵌入 HTML 中。开始时代码量较少,暂时还可以接受。但当页面结构复杂起来后,其弱点开始变得无法忍受起来:书写不连贯。每写一个变量就要断一下,插入一个 + 和 “。十分容易出错。无法重用。HTML 片段都是离散化的数据,难以对其中重复的部分进行提取。无法很好地利用 标签。这是 HTML5 中新增的一个标签,标准极力推荐将 HTML 模板放入 标签中,

2016-05-20 09:26:21 4683

图解HTTP中文完整版

《图解HTTP》对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。《图解HTTP》的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过《图解HTTP》快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。

2016-10-18

AngularJS权威指南(中文版)

2016-05-22

浏览器的工作原理:新式网络浏览器幕后揭秘.

这是一篇全面介绍 Webkit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。

2016-05-22

HTTP权威指南

《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。《HTTP权威指南》的中心内容是HTTP,本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理.

2016-05-22

空空如也

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

TA关注的人

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