- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 现代浏览器工作原理
五种主流浏览器:IE,Chrome,fireFox,chrome, safari和Opera。其他浏览器的内核都是这五种之一。浏览器的主要构成:1.用户界面:浏览器界面的各个部分(包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面的主窗口之外的其他部分)2.浏览器引擎:用来查询和操作渲染引擎的接口3.渲染引擎:用来显示所请求的资源,负责解析HT
2016-04-11 16:42:25 1388
原创 git rebase 和 git push --force-with-lease的使用
git rebase合并代码和回退Git rebase的使用合并代码代码回退Git rebase的使用Git rebase合并代码,可以使git的提交树,更加清晰美观。还可以用git rebase合并代码合并代码使用git rebase合并分支(commit),会基于要合并的分支,生成新的commit。git rebase develop git push --force-with-lease代码回退git rebase -i 8dii93dx8sex0d03ld8sje命令行会显示
2021-09-29 19:58:23 1104
原创 REDIS笔记
redis 笔记redis安装windows下的安装下载地址: https://github.com/tporadowski/redis/releasesLinux 源码安装下载地址:http://redis.io/download,下载最新稳定版本。启动redis# redis-server# redis-cliredis数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。red
2020-11-18 15:52:56 121 1
原创 LEETCODE面试题收藏--快慢指针
删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * t
2020-09-18 16:44:33 105
原创 七月的自制操作系统第一天
30天自制操作系统二进制编辑器操作系统的启动BIOS通电,加载硬盘的引导扇区,引导扇区是磁盘的第一个扇区,一个扇区的大小是512 字节,如果第一个扇区最后两个字节是0x55AA,汇编指令DB: define byte,往文件里写入一个字节;DW: define word,写入2个字节;DD: define double-word,写入4个字节;RESB:reserve byte 空出多少个字节;...
2020-05-24 23:27:45 122
原创 操作系统的启动-七月
BIOS自检系统引导BIOS自检Created with Raphaël 2.2.0上电自检POST枚举本地设备并对其初始化,
2020-04-27 23:41:42 120
原创 七月的微信小程序开发总结
微信小程序开发总结概述小程序框架宿主环境事件系统WXML APIWXS概述小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。在公司有开发过几个微信小程序,前前后后已有一年时间,收获颇多,也踩过许多坑,也知道自己的短板在哪。小程序框架页面 Page组件 Comonent模块化 require, module, exportswxml...
2020-04-21 17:47:38 618
原创 JAVASCRIPT中的位运算
JAVASCRIPT中的位运算位运算符:运算符名称操作示例&位与对整形数逐位执行与(AND)操作0x1234 & 0x00ff === 0x34|位或对整形数逐位执行与(OR)操作0x1234 & 0x00ff === 0x12FF~位非将操作数的所有为取反~0xf === 0xffffffff0^位异或对...
2019-10-23 21:28:57 249
原创 正则表达式整理-七月
正则表达式元字符代码/语法说明.匹配换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束重复代码/语法说明*重复零次或更多次+重复一次或更多次?重复零次或一次{n}重复n次{...
2019-08-23 11:58:10 128
原创 ubuntu linux中如何设置无线网络连接
解决方法:1.首先,查看对应的PCI设备,在终端中输入如下命令,可以看出,我的无线网卡是 Broadcom 的BCM4311lspci2.去掉默认的broadcom 无线网卡驱动。sudo apt remove bcmwl-kernel-source3.安装最新的broadcom 无线网卡驱动。sudo apt install firmware-b43-installer b43...
2019-03-17 12:31:07 17963 1
原创 JAVASCRIPT中的函数劫持
JS中的函数劫持基本概念函数劫持,顾名思义,即在一个函数运行之前把它劫持下来,添加我们想要的功能。当这个函数实际运行的时候,它已经不是原本的函数了,而是带上了被我们添加上去的功能。这也是我们常见的钩子函数的原理之一。 乍一看上去,这很像是函数的改写。函数的改写也可以理解为是函数劫持的一种,但是这种方式太恶心了。作为一个劫持者,在绑票获得好处以后也应该遵守职业道德,把人原封不动地还回...
2018-03-16 17:11:31 762
原创 git 获取当前分支名
git 获取当前分支名git symbolic-ref --short -q HEAD参考链接 https://stackoverflow.com/questions/6245570/how-to-get-the-current-branch-name-in-git
2018-03-16 11:06:48 7539
原创 gulp使用问题汇总
1. 怎么避免gulp watch 中断?使用gulp-blumber插件: npm install gulp-plumber --save在配置文件中类似这样使用: gulp.task('coffee', function() { return gulp.src(path.scripts) .pipe(plumber()) //plumber给pipe打补丁 .pipe(co
2017-11-18 15:20:51 427
原创 前端面试题-长沙
面试题:常见内存泄露的操作?前端性能优化方法?web安全技术有哪些?src和href的区别?cookie localstorage session…之间区别?处理ie6bug的方法?
2017-11-07 17:09:44 534
原创 浏览器缓存总结
在前端开发中,我们在提到性能优化的时候总会提到一点:合理设置缓存。我们该如何从缓存设置入手来提高网站性能呢?什么是浏览器缓存?MDN 上是这样解释浏览器缓存的:Caching is a technique that stores a copy of a given resource and serves it back when requested. When a web cache has a r
2017-11-07 17:05:25 289
原创 web前端面试题:实习岗位
1.什么是W3C标准,HTML4.0, DHTML,HTML5 各有什么区别?2.什么是盒子模型,css的盒子模型有哪几种,说说他们有什么区别?box-sizing:border-box;/* 怪异盒子模型 */设置内边距和border不会撑开盒子box-sizing:content-box;/* 普通盒子模型 */3.css中引入样式的方法有哪几种?link 外部样式表行内样式style=
2017-11-05 22:20:08 11271 1
原创 Node.js 命令行程序开发教程
Node.js 命令行程序开发教程一种编程语言是否易用,很大程度上,取决于开发命令行程序的能力。 Node.js 作为目前最热门的开发工具之一,怎样使用它开发命令行程序,是 Web 开发者应该掌握的技能。 下面我们从开发一个简单的hello命令开始:1.可执行脚本首先,使用 JavaScript 语言,写一个可执行脚本 hello 。#!/usr/bin/env nodeconsole.log
2017-08-30 14:36:19 295
原创 调试Android WebView
从Android4.4(KitKat)开始,可以使用DevTools对原生android应用程序的Android WebViews内容进行调试。调试WebViews要求在Android设备或模拟器运行Android4.4或更高版本,并且Android设备上启用USB调试模式。Chrome 30或更高版本。更强大的WebView界面调试功能需要Chrome31或更高版本。Android应用程序中
2017-06-22 20:00:29 330
原创 Contributions未被Github计入的解决方法
Contributions未被Github计入的几个常见原因进行Commits的用户没有被关联到你的Github帐号中。不是在这个版本库的默认分支进行的Commit。这个仓库是一个Fork仓库,而不是独立仓库。如何排查你可以在你的本地repo里用git log命令查看commit记录上的个人邮箱是否正确,像我就是因为之前切换到Mac平台开发之后用户名没有配置, 所以我之后的commit记录
2017-04-19 11:35:59 666
原创 W3C的标准DOM事件模型和IEDOM事件模型的区别
在浏览器解析事件的时候,有两种触发方式,一种叫做Bubbling(冒泡),另外一种叫做Capturing(捕获)。由上图可以看出来,冒泡的方式效果就是当一个DOM元素的某事件例如click事件被fire时,依次它的父元素的click事件也被fire(触发),一直传递到最顶层的body元素为止。而捕获的触发方式正好相反,当某个元素的click事件被触发时,先从最顶层的body元素click事件被触发开
2017-02-10 23:07:49 847
原创 在浏览器输入一个url后,会发生什么事情呢?
假设是简单的http请求(GET),IPV4,无代理。浏览器先查看浏览器缓存-系统缓存-路由器缓存,若缓存中有,请略过中间步骤,直接跳到第9步~若没有,则按照下面的步骤进行操作。浏览器从url中解析出服务器的主机名,并将主机名转换成服务器的IP地址。 PS:DNS查找域名的过程 浏览器从url中解析出端口号,默认80 浏览器建立一条与服务器的tcp连接(建立过程:三次握手)。 一个完整
2017-02-10 22:15:39 472
原创 技术文章收集
Writing Element Queries Today Using EQCSS The end of the clearfix hackA Step by Step Guide to the Auto-Placement Algorithm in CSS Grid技术合集:新春来袭,锦囊妙计助程序员过个好年
2017-02-05 23:39:20 196
原创 JS中的双向数据绑定及Object.defineProperty方法
双向数据绑定的常规实现方式脏检查观察机制封装属性访问器封装属性访问器在php中有 魔术方法 这样一种概念,比如php中的 __get() 和 __set() 方法。在javascript中也有类似的概念,不过不叫魔术方法,而是叫做访问器。我们来看个示例代码,var data = { name: "erik", getName: function() { ret
2017-01-18 23:10:57 387
原创 常见的web攻击手段
常见的web攻击手段有: XSS攻击;CSRF攻击; SQL注入攻击:DDOS攻击。XSS攻击XSS攻击:全称是跨站脚本攻击,指的是攻击者在脚本中嵌入恶意脚本程序,当用户打开网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端COOKIE,用户名密码,下载执行病毒木马程序,甚至是获取客户端的admin权限。防范对用户输入的数据进行html转义处理,将其中的“尖括号”,“单引号”,“
2017-01-14 16:37:31 530
原创 Html5 meta标签用法总结
最近测试html5页面,发现默认都允许用户缩放页面,或者在屏幕双击放大或缩小。即相当于这样设置 <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=yes"/> 如果要禁止此情形,修改相应参数即可。 <meta content="width=device-width, initial-s
2017-01-12 22:33:07 1873
原创 HTML5触摸屏和移动设备事件
主要分为三类:手势(gesture),触摸(touch)和屏幕旋转(orientation) 手势事件gesture用于两个手指之间的缩放与旋转。 手势生成时产生gesturestart,收拾过程是gesturechange,结束时产生gestureend事件。这三个事件传递的对象都包括两个属性: * scale:缩放比例; * rotation:旋转的角度,从事件开始手指在顺时针方
2017-01-12 21:30:15 890
原创 HTML5文档结构分析
html5规范将元素分为三大类:元数据元素,流元素和短语元素主体结构DOCTYPE 元素指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。html版本有:HTML 5,HTML 4.01 Strict,HTML 4.01 Transitional,HTML 4.01 Frameset,XHTML 1.0 Strict,XHTML 1.0 Transitional,XHTML 1.0
2017-01-08 19:11:55 2169
原创 编写一个webpack插件
插件将Webpack引擎的全部潜能暴露给第三方开发人员。使用分段构建回调,开发人员可以将自己的行为引入Webpack构建过程。插件的开发比起加载器(loaders)的开发更近了一步,因为你需要用一些webpack底层的内部构建来钩住他们。准备去阅读一下webpack的源码吧。compiler和compilation在开发插件时,两个最重要的对象是:compiler和compilation。了解他们的
2016-12-10 20:46:01 2789
原创 webpack工作流程分析
目前,几乎所有业务的开发构建都会用到 webpack 。的确,作为模块加载和打包神器,只需配置几个文件,加载各种 loader 就可以享受无痛流程化开发。但对于 webpack 这样一个复杂度较高的插件集合,它的整体流程及思想对我们来说还是很透明的。那么接下来我会带你了解 webpack 这样一个构建黑盒,首先来谈谈它的流程。准备工作1. webstorm 中配置 webpack-webstorm-
2016-11-15 18:20:49 3131
原创 webpack样式处理
样式嵌入通过使用style-loader和css-loader,webpack可以将样式文件打包进一个js包中(javascript bundle),你可以对你的样式进行模块化,就像require(‘./stylesheets.css’);安装npm install style-loader css-loader --save-dev配置以下这个示例能使用require()css: { /
2016-11-14 13:04:53 1142
原创 webpack的code spliting与chunks
为什么要使用代码分割code spliting?对于一个大型项目而言,将所有代码打包进一个文件可能会导致打包后的文件非常大(虽然减少了请求次数,单个文件过大会导致阻塞),而且有些代码只是在某些情况下是必需的,这就导致了效率低下。webpack有一个code spliting的特性,它可以将你的代码库分割成按需加载的块(chunks)。怎么定义了一个分割点split pointAMD和commonJS
2016-11-03 14:06:43 2422 2
原创 webpack开发工具webpack-dev-server使用指南
使用初步安装webpack-dev-server: 在项目目录下执行,npm install webpack-dev-server -g 运行 webpack-dev-server 自动刷新有两种模式自动刷新页面: * Iframe mode (网页是内嵌在一个iframe中的) * Inline mode (将一个小的webpack-dev-server客户端条目添
2016-10-11 17:23:35 1738
原创 webpack要点
webpack是一个模块打包工具(module bundle)loaders非JS资源转换pluginswebpack功能扩展
2016-09-20 13:20:09 317
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人