自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 观察者模式与订阅发布模式的区别

1、观察者模式观察者模式定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知,并自动更新。观察者模式属于行为型模式,行为型模式关注的是对象之间的通讯,观察者模式就是观察者和被观察者之间的通讯。观察者模式有一个别名叫“发布-订阅模式”,或者说是“订阅-发布模式”,订阅者和订阅目标是联系在一起的,当订阅目标发生改变时,逐个通知订阅者。我们可以...

2019-05-03 22:28:00 715

转载 MAC地址表、ARP缓存、FIB路由表

MAC地址表说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。交换机的工作原理交换机在接收到数据帧以后,首先、会记录数据帧中的源MAC地址和对应的接口到MAC表中,接着、会检查自己的MAC表中是否有数据帧中目标...

2019-01-11 17:26:00 463

转载 国内四大骨干网与十大ISP服务商

1、骨干网几台计算机连接起来,互相可以看到其他人的文件,这叫局域网,整个城市的计算机都连接起来,就是城域网,把城市之间连接起来的网就叫骨干网。这些骨干网是国家批准的可以直接和国外连接的互联网。其他有接入功能的ISP(互联网服务提供商)想连到国外都得通过这些骨干网。骨干网(Backbone Network)是用来连接多个区域或地区的高速网络。每个骨干网中至少有一个和其他骨干网进行互...

2019-01-08 13:57:00 1858

转载 简述移动通信的网络制式

网络制式就是网络的类型。1、GSM/CDMAGSM 和 CDMA 是两种不同的 2G 网络制式。中国移动和中国联通采用的2G网络制式为GSM,而中国电信的2G网络制式采用了CDMA。GSM全球移动通信系统(Global System of Mobile communication),是全球应用最广泛的移动电话标准。GSM被认为是第二代移动通信标准(2G),同时...

2019-01-06 22:52:00 1212

转载 Linux 开启和关闭 Ping 操作

Linux 默认是开启 ping 操作的,通过以下两种方式可以开启和关闭 ping 操作 。1、修改内核参数通过内核参数设置也有两种方式,一种是临时修改,一种是永久修改。1.1 临时设置 PING 操作# 禁止echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all # 开启echo 0 >/proc/sy...

2018-07-06 13:55:00 354

转载 centos 修改 mysql 字符集

客户提供了 mysql 的环境,但是不支持中文,通过以下命令查看了 mysql 的字符集mysql> show variables like 'character_set%';显示如下:+--------------------------+----------------------------+ | Variable_name ...

2018-06-23 22:29:00 121

转载 JavaScript 内存泄露问题

内存泄露是每个开发者最终都不得不面对的问题。即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况。内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题。什么是内存泄漏本质上来讲,内存泄露是当一块内存不再被应用程序使用的时候,由于某种原因,这块内存没有返还给操作系统或者空闲内存池的现象。编程语言使用不同的方式来管理内存。这些方式可能...

2018-04-14 16:51:00 245

转载 简单介绍 CPU 的工作原理

内部架构CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块,分别是控制单元、运算单元和存储单元 。其内部架构如下:【1】控制单元控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和 操作控制器OC(...

2018-04-05 22:12:00 571

转载 正则表达式零宽断言详解

在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了。正则表达式零宽断言:零宽断言是正则表达式中的难点,所以本章节重点从匹配原理方面进行一下分析。零宽断言还有其他的名称,例如"环视"或者"预搜索"等等,不过这些都不是我们关注的重点。一.基本概念:零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存...

2017-10-23 17:07:00 134

转载 十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念...

2017-10-15 23:43:00 289

转载 详解 setTimeout、setImmediate、process.nextTick 的区别

node.js 中的非 IO 的异步 API 提供了四种方法,分别为 setTimeOut(), setInterval(), setImmediate() 以及 process.nextTick(),四种方法实现原理相似,但达到的效果略有区别:1、事件循环 Event Loop首先,我们需要了解node.js的基于事件循环的事件模型,正是因为它才使得node.js中回调函数十分...

2017-09-28 10:24:00 231

转载 Ajax、Comet 与 Websocket

1、从http协议说起1996年IETF HTTP工作组发布了HTTP协议的1.0版本,到现在普遍使用的版本1.1,HTTP协议经历了17年的发展。这种分布式、无状态、基于TCP的请求/响应式、在互联网盛行的今天得到广泛应用的协议,相对于互联网的迅猛发展,它似乎进步地很慢。互联网从兴起到现在,经历了门户网站盛行的web1.0时代,而后随着ajax技术的出现,发展为web应用...

2017-09-26 11:50:00 166

转载 iframe跨域POST提交

说到跨域,就不得不提起浏览器的同源策略。同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。源如果协议,端口(如果指定了一个)和主机对于两个页面是相同的,那么这两个页面就具有相同的源。从这个定义可以看出,如果两个页面的协议,端口,主机三个只要有一个不一样,就是不同的源,想要相互之间进行交互,就需要进行跨域。iframe跨域POST无刷新提交跨域的...

2017-09-21 15:32:00 203

转载 详解 CORS 跨域资源共享

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,...

2017-09-21 12:38:00 116

转载 前端跨域请求方法汇总

受浏览器同源策略的限制,本域的js不能操作其他域的页面对象(比如DOM)。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。所以我们要通过一些方法使本域的js能够操作其他域的页面对象或者使其他域的js能操作本域的页面对象(iframe之间)。这里需要明确的一点是:所谓的域跟js的存放服务器没有关系,比如baidu.com的页面加载了google.com的js,那么此...

2017-09-21 12:33:00 185

转载 XDomainRequest——限制、局限性和变通方案

本文翻译自微软官网的一篇文章,名称是XDomainRequest – Restrictions, Limitations and Workarounds本文原作者是EricLaw,前微软正式员工。2004到2012年在微软担任IE程序经理(Program Manager)。译文如下:更新:IE10 以上的浏览器支持使用 XMLHTTPRequest 对象,进行跨域资源共享...

2017-09-21 12:18:00 1796

转载 小端字节序与大端字节序

在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian 和 Little-Endian,下面先从字节序说起。...

2017-09-02 23:12:00 260

转载 V8引擎的垃圾回收策略

V8 的垃圾回收策略主要基于分代式垃圾回收机制。所谓分代式,就是将内存空间分为新生代和老生代两种,然后采用不同的回收算法进行回收。新生代空间新生代空间中的对象为存活时间较短的对象,大多数的对象被分配在这里,这个区域很小但是垃圾回特别频繁 。它将堆内存一分为二,每一部分空间称为 semispace,其中一个处于使用状态(from 空间),另一个处于闲置状态(to 空间)对于...

2017-08-24 18:52:00 170

转载 TTL 和 DNS TTL 的区别

TTLTTL是 Time To Live 的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。在IPv4包头中TTL是一个8 bit字段,它位于IPv4包的第9个字节。如下图所示,每一行表示 32 bit(4字节),位从0开始编号,即0~31。TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,...

2017-08-23 23:04:00 312

转载 计算机字符编码

1、Unicode 的由来因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是429496729...

2017-08-23 22:55:00 137

转载 详解 undefined 与 null 的区别

Undefined 和 Null 是 Javascript 中两种特殊的原始数据类型(Primary Type),它们都只有一个值,分别对应 undefined 和 null ,这两种不同类型的值,既有着不同的语义和场景,又表现出较为相似的行为:undefinedundefined 的字面意思就是:未定义的值 。这个值的语义是,希望表示一个变量最原始的状态,而非人为操作的结果 ...

2017-08-10 08:17:00 945

转载 Node.js 事件循环机制

Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程、高并发的 JavaScript 运行时环境,而单线程就意味着同一时间只能做一件事,那么 Node.js 如何通过单线程来实现高并发和异步 I/O?本文将围绕这个问题来探讨 Node.js 的单线程模型 。高并发策略一般来说,高并发的解决方案就是提供多线程模型,服务器为每个客户端请求分配一个线程,使用同步 I/O...

2017-07-10 01:48:00 276

转载 深入浅出 TCP/IP 协议栈

TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工...

2017-06-29 00:17:00 5514

转载 requestAnimationFrame 知多少?

在Web应用中,实现动画效果的方法比较多,JavaScript 中可以通过定时器 setTimeout 来实现,css3 可以使用transition 和 animation 来实现,html5 中的 canvas 也可以实现。除此之外,html5 还提供一个专门用于请求动画的 API,即 requestAnimationFrame(rAF),顾名思义就是 “请求动画帧”。为了深入...

2017-06-26 00:26:00 173

转载 Web前端知识体系精简

Web前端技术由 html、css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏...

2017-06-16 01:13:00 424

转载 Vue.js 和 MVVM 小细节

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层。它的核心是 MVVM 中的 VM,也就...

2016-11-06 22:42:00 279

转载 使用 Node.js 搭建 Web 服务器

使用Node.js搭建Web服务器是学习Node.js比较全面的入门教程,因为实现Web服务器需要用到几个比较重要的模块:http模块、文件系统、url解析模块、路径解析模块、以及301重定向技术等,下面我们就一起来学习如何搭建一个简单的Web服务器。作为一个Web服务器应具备以下几个功能:能显示以 .html/.htm 结尾的 Web 页面能直接打开以 .js/.css...

2016-03-28 01:35:00 111

转载 H5单页面手势滑屏切换原理

H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路。实现原理假设有5个页面,每个页面占屏幕100%宽,则创建一个DIV容器viewport,将其宽度(width) 设置为500%,然后将5个页面装入容器中,并让这5个页面平分整个容器,最后将容器...

2016-03-21 02:02:00 408

转载 JavaScript中的 NaN 与 isNaN

NaNNaN 即Not a Number,不是一个数字。 在 JavaScript 中,整数和浮点数都统称为 Number 类型 。除此之外,Number 类型还有一个很特殊的值,即 NaN 。它是 Number对象上的一个静态属性,可以通过 Number.NaN 来访问 。console.log(Number.NaN); // NaN在 ECMAScript...

2016-03-16 00:27:00 233

转载 React 基础入门

React 起源于 Facebook 内部项目,是一个用来构建用户界面的 Javascript 库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内部通过 state 来维护组件状态的变化,当组件的状态发生变化时,React 通过虚拟DOM技术来增量并且高效的更新真实DOM。本文将对React 的这些特点进行简单的介绍。Hell...

2016-03-06 21:58:00 263

转载 JavaScript正则表达式精简

ECMAScript 3 开始支持正则表达式,其语法和 Perl 语法很类似,一个完整的正则表达式结构如下:var expression = / pattern / flags ;其中,模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。每个正则表达式都可带有一或多个标志(flags),用以标明正则表达式的行...

2016-02-26 15:00:00 762

转载 快速构建H5单页面切换应用

在Web App和Hybrid App横行的时代,为了拥有更好的用户体验,单页面应用顺势而生,单页面应用简称`SPA`,即Single Page Application,就是只有一个HTML页面的应用程序,应用中所有的视图都包含在这个HTML页面中,并通过JavaScript控制相关视图的显示和隐藏,这种模式可以让用户在Web App感受Native App的速度和流畅。本篇文章的目的就...

2016-01-26 01:36:00 324

转载 深入理解 call,apply 和 bind

在JavaScript 中,call、apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果。本文将对这三个方法进行详细的讲解,并列出几个经典应用场景。1、call(thisArgs [,args...])该方法可以传递一个thisArgs参数和一个参数列表,thisArgs 指定了函...

2016-01-20 00:17:00 499

转载 JavaScript 中的四舍五入

在 JavaScript 中,对数值进行四舍五入操作的场景有以下几种:向上取整:ceil向下取整:floor四舍五入:round固定精度:toFixed固定长度:toPrecision取整:parseInt、位运算本文将对这 6 个 API 进行简单的讲解和总结。1、向上取整: ceilceil 是`天花板`的意思,表示在一个数值之上,且距离该...

2016-01-19 11:07:00 223

转载 数组常用操作方法总结

在 JavaScript 中,对于数组的操作非常频繁,对应的 API 也很丰富 。ECMAScript 规范在每一版发布时,都会提供新的 API 来增强数组的操作能力,下面将详细介绍这些 API 的一些特性。ES5 新增的 9 个API1、forEach( callback[,thisArg] )在 ES5 之前,我们可以通过 for 和 for in 两种方式来遍历数组,E...

2016-01-12 03:02:00 169

转载 浅析 jQuery 内部架构设计

jQuery 对于大家而言并不陌生,因此关于它是什么以及它的作用,在这里我就不多言了,而本篇文章的目的是想通过对源码简单的分析来讨论 jQuery 的内部架构设计,以及 jQuery 是如何利用JavaScript 中的高级特性来构建如此伟大的 JavaScript 库。初识 jQuery从核心功能来看,jQuery 仅仅做了一件简单而又平凡的事:查询。它的语法如此简洁明了,以致...

2016-01-04 01:42:00 101

转载 探索JS引擎工作原理

JavaScript 从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习 JS 引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈、全局对象、执行环境、变量对象、活动对象、作用域和作用域链等,这些概念正是JS引擎工作的核心组件。这篇文章的目的不是孤立的为你讲解每一个概念,而是通过一个简单的 DEMO 来展开分析,全局讲解 JS 引擎从定义到执行的每一个细节,以及这些概念在...

2015-12-31 09:57:00 181

转载 让你分分钟理解 JavaScript 闭包

闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念进行大篇幅描述,直接上干货,让你分分钟理解闭包!闭包,一睹为快在接触一个新技术的时候,我首先会做的一件事就是找它的 demo。对于我们来说,看代码比自然语言更能理解一个事物的本质。...

2015-12-21 09:14:00 243

转载 深入理解 new 操作符

和其他高级语言一样 JavaScript 也有 new 操作符,我们知道 new 可以用来实例化一个类,从而在内存中分配一个实例对象。 但在 JavaScript 中,万物皆对象,为什么还要通过 new 来产生对象? 带着这个问题,我们一步步来分析和理解 new 的一些特性:认识 new 操作符function Animal(name){ this.name = n...

2015-12-14 09:09:00 197

转载 函数作用域和作用域链

作用域所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。function scope(){ var foo = "global"; if(window.getComputedStyle){ var a = "I'm if"; console.log("if:"+foo); //if:gl...

2015-12-10 16:05:00 243

空空如也

空空如也

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

TA关注的人

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