技术学习总结
文章平均质量分 51
hudk114
原研究生搬砖党
工作了发现还是读书好啊
展开
-
依赖注入学习总结
http://blog.jobbole.com/97917/依赖注入(Dependency Injection),是这样一个过程:由于某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点。在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行。个人理解:为了实现原创 2016-02-24 11:20:24 · 308 阅读 · 0 评论 -
[html] 语法
大小写不敏感,推荐使用小写 最新版本要求使用小写元素 块元素(block)内联元素(inline element)空元素(void element)!DOCTYPE 声明必须是 HTML 文档的第一行,位于 < html> 标签之前 不是 HTML 标签而是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令 !DOCTYPE参考手册meta 元数据(metadata)是关原创 2016-09-03 12:22:56 · 184 阅读 · 0 评论 -
[数据结构] 匹配算法
算法实现 KMP kmp真是学到现在为止最头疼的一个算法,嗯我是渣渣 分两部分 一、子串的next数组;二、循环遍历。 next数组的意义是:第n项之前的若干项与第1到第next[n]-1项完全一样(前驱相同)。 因此next数组的寻找方式使用递归的想法: 对于当前位置i,有开头的最大子串长度为n; 对i+1,若j+1==i+1,那么最大子串长度为n+1;若j+1!=i+1,因为第j+原创 2016-10-05 00:27:25 · 375 阅读 · 0 评论 -
[js] ES5
array Array.prototype.every() Array.prototype.filter() Array.prototype.forEach() Array.prototype.indexOf() Array.prototype.lastIndexOf() Array.prototype.map() Array.prototype.reduce() Array.pro原创 2016-09-14 20:04:14 · 319 阅读 · 0 评论 -
[js] DOM操作
DOMoperatione.appendChild(newNode) // append newNode at the last of e's child list, return it. if newNode is already one node in html, it would moved here e.insertBefore(newNode, positionedNode) // ap原创 2016-09-05 16:14:37 · 205 阅读 · 0 评论 -
[js] 数组
ES6前ES6扩展运算符 扩展运算符…用于将数组转化为用逗号分隔的参数序列 在函数调用中常用函数中的rest参数// 后跟表达式const arr = [ 1, ...(x > 0 ? [2, 3, 4] : [2, 3]),];// 在定义时使用function f0(...items) { return items.map(i => i * 2);}// 在调用时使用原创 2017-07-31 20:32:14 · 265 阅读 · 0 评论 -
[js] 变量 操作符 对象
ES5关键字和保留字数据类型 基本数据类型: Undefined, Null, Boolean, Number, String 复杂数据类型: Object(由一组无须名值对组成) 基本数据类型是按值访问的(保存在栈内存中),引用类型的值是保存在堆内存中的对象。js不允许直接访问内存位置,因此在操作对象时实际操作的是对象的引用而非对象本身 在为对象添加属性时操作的是对象本身(或者说会通过引用原创 2016-09-01 08:39:34 · 701 阅读 · 0 评论 -
[js] ES6 函数
参数默认function Man(firstName = 'Hu', secondName = 'DK') { console.log(`Hello, ${firstName} ${secondName}`);}Man(); // Hello, Hu DKMan('Zhao'); // Hello, Zhao DK// null不会触发默认值Man(null, 'DW'); // H原创 2017-07-24 21:54:31 · 368 阅读 · 0 评论 -
[front-end] 双向绑定
一直没仔细研究过这个,感觉自己还是太不够敏感了,原来只是看到有双向绑定,没细想过原理。 my githijack方式hijack主要分为两部分:对数据的劫持、与DOM的关联。两个原理听起来都很简单写起来都是各种小坑数据劫持git 原理很简单,利用Object.defineProperty对数据进行劫持 坑1. hijack obj必须在 hijack propert之前,不然原创 2018-01-30 18:14:09 · 157 阅读 · 0 评论 -
[js] 原型 继承 委托
每个函数都有prototype属性,prototype是一个指向原型对象的指针 例外:通过Function.prototype.bind方法构造出来的函数没有prototype属性function Point(x, y) { this.x = x; this.y = y;}var Y = Point.bind(null, 0, 3);Point.prototype // Ob原创 2016-08-29 16:08:45 · 472 阅读 · 0 评论 -
[js] 数据类型
my git基本数据类型共七种nullundefinedbooleannumberstringobjectsymbol nulltypeof null === 'object' // 早期js判断空指针问题// 判断nulla === null!a && typeof a === 'object'typeof null typeof null hi原创 2017-08-01 15:46:05 · 204 阅读 · 0 评论 -
[front-end] 前端跨域方法总结
浏览器同源政策及其规避方法jsonp 在页面上引入不同域的js脚本文件,请求页面返回一个带参数的执行函数 只能使用get<script type="text/javascript"> function doSth(data) { // 处理数据 }</script>.<script src="https://example.com/...原创 2016-09-04 10:26:30 · 304 阅读 · 0 评论 -
[http] 跨域说明
只是从http层角度说下跨域的问题,并不提供解决方法,解决方法在以前老的文章里写过跨域跨域的请求被拦截有两种可能: 1. 浏览器直接禁止发起跨域,例如在某些浏览器中HTTPS请求HTTP域请求不会发起; 2. 跨域请求发起了,但是返回结果被浏览器拦截,请求失败。CORSw3c协议 CORS是一种利用额外HTTP头部来允许用户代理跨域请求的技术,与传统跨域方式不...原创 2018-02-09 17:31:09 · 343 阅读 · 0 评论 -
[html] http5
dataset<div data-to-do-sth="you know nothing" data-name="Jon Snow"></div>ele.dataset // DOMStringMap {toDoSth: "you know nothing", name: "Jon Snow"}ele.dataset.toDoSth // you know nothingele.dataset原创 2016-09-26 11:00:03 · 1056 阅读 · 0 评论 -
[css] css3
参考手册 选择器 选择器参考手册浮动 inline-block背景和边框 border-radius topleft topright bottomrigth bottomleft 前四个为第一个,后四个为第二个border-radius: 1-4 length|% / 1-4 length|%;border radius详解box-shadow:[inset] x-offset y-原创 2016-09-11 10:46:13 · 217 阅读 · 0 评论 -
[http] 简单整理
简介 无连接:每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 媒体独立:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。 无状态:协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的原创 2016-09-07 17:31:04 · 260 阅读 · 0 评论 -
[js] 垃圾收集 内存泄漏
标记清除(mark-and-sweep)引用计数(reference counting) 循环引用会造成内存泄漏内存管理 在数据不再有用后通过设为null来释放引用(dereferencing)内存泄漏 闭包在IE中可能会造成内存泄漏(COM元素的循环引用)function domHandle(){ var ele = document.getElementById('a');原创 2016-09-01 11:35:59 · 191 阅读 · 0 评论 -
[js] 函数 闭包
函数声明函数声明与函数表达式 函数声明会自动提升(function declaration hoisting)test();function test() {console.log('for fun')} // for funtest();var test = function() {} // errorif(condition){ function sayHi(){/*d原创 2016-08-30 09:25:58 · 374 阅读 · 0 评论 -
[js] 作用域 作用域链
执行环境(execution context) - 执行环境定义了变量或函数有权访问的数据 - 每个执行环境都有一个相关联的 变量对象 ,环境中定义的所有变 - 量和函数都保存在该对象中 - 每个函数都有自己的执行环境 1. 函数环境推入环境栈中; 2. 函数执行,返回; 3. 栈弹出环境,将控制权返回之前的执行环境。作用域链(scope chain) 代码在环境中执行时,会创建原创 2016-09-01 11:20:26 · 177 阅读 · 0 评论 -
[jQuery] 事件 方法
12特殊函数2.1 $(document).ready()DOM完全就绪(关联文件,如图片不一定下载完毕)时调用$(document).ready(),所有文档完全下载到浏览器以后触发window.onload。.ready()可以简写为$()$(document).ready(function(){ // code});$(function(){ // c原创 2016-04-25 22:57:34 · 286 阅读 · 0 评论 -
[http] tips
防止表单重复提交disable掉按键 在服务端返回后应该恢复按键的可用性发送端约束,上一个未返回不发送下一个页面重定向 在返回过程中还是会有重复提交问题服务端session比较 如果session不一样则认为是不同的请求数据库约束 参考click me原创 2016-09-14 11:24:33 · 469 阅读 · 0 评论 -
[css] 框模型 流式布局
框模型 早期ie有width兼容性问题,最好的解决方案是回避这个问题。即不给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。外边距合并 当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者 当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并原创 2016-09-02 21:07:42 · 641 阅读 · 0 评论 -
[css] 居中
居中 水平居中center<center>^^^</center>text-align: center.x { text-align: center; }两者不一样,center是将所有元素居中,text-align只居中字符<center> <section style="width:200px;"> 777 </section></center><section s原创 2016-09-02 11:02:22 · 195 阅读 · 0 评论 -
[http] 请求与常见状态码
GETPOST状态码 这里写链接内容 wiki状态码 1xx 消息(信息提示) 服务器收到请求,需要请求者继续执行操作 2xx 用于表示请求成功 3xx 重定向 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息 4xx 客户端错误 用于指出客户端的错误 5xx 服务端错误 用于支持服务器错误200 OK 请求已成功,请求所希望的响应头或数据体将随此响应返回 201 Cr原创 2016-09-04 15:22:23 · 1001 阅读 · 0 评论 -
[http] 缓存
http请求过程 1. 检查本地缓存; 2. 若存在,检查是否过期; 3. 若过期,发送新请求; 4. 若服务端返回304,直接使用缓存;否则获取资源。原创 2016-09-05 14:04:57 · 235 阅读 · 0 评论 -
[css] tips
css reset reset.cssbody{ margin: 0; padding: 0;}清除浮动 选取有意义的固定元素进行浮动清理(clear:both)字体大小 在body中定义一个字体大小然后在设置其他字体大小时根据相对父元素的比例大小修改原创 2016-09-05 17:11:30 · 181 阅读 · 0 评论 -
[css] 语法
层叠次序 层叠次序由高到低为 1. 内联样式(在 HTML 元素内部) 2. 内部样式表(位于< head>标签内部) 3. 外部样式表 4. 浏览器缺省设置语法 选择器(selector) {属性(property): 值(value); 属性: 值;} h1 {color:red; font-size:14px;}选择器派生选择器li strong {color:red;原创 2016-09-02 09:53:16 · 238 阅读 · 0 评论 -
[js] BOM
window innerheight 文档显示区高度 innerwidth 文档显示区宽度 length 窗口中框架数量 opener 创建此窗口的窗口的引用 top 顶级窗口的只读引用 screenLeft screenTop screenX screenY 窗口左上角在 屏幕 上的xy坐标focus() blur() 给窗口焦点及移开焦点locationnavigatorscreen原创 2016-09-06 09:55:06 · 225 阅读 · 0 评论 -
[front-end] 浏览器文件缓存优化策略
本文针对的是浏览器级对文件缓存对一些优化对总结HTTP缓存强缓存协商缓存(弱缓存)参考HTTP缓存http缓存指的是缓存http请求的数据,一次http请求包含几个主要步骤 http缓存主要在第3和第4步进行,根据协议不同,会采用强缓存和协商缓存(弱缓存)两种强缓存强缓存指缓存在本地,不会再向服务端请求的文件缓存方式 强缓存采用的是 C...原创 2018-04-26 14:29:49 · 295 阅读 · 0 评论