自定义博客皮肤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)
  • 收藏
  • 关注

原创 m

cube-ui 是一个基于 Vue.js 实现的精致移动端组件库。 它响应迅速、动画流畅,追求极致的交互体验。 总体分为基础、弹层、滚动三大组件模块。可以说基本涵盖了我们移动端所有的组件需求。那么这里呢,我们想利用它来做一个浏览赛事的 APP 。大体可以分为顶部导航、比赛列表和弹窗三大部分。 首先,用户要可以流畅的滚动列表来查看比赛,并且可以通过下拉列表来刷新赛事情况,以及通过上拉列表的...

2018-03-13 23:43:10 430

原创 readme

readmecube-ui 是一个基于 Vue.js 实现的精致移动端组件库。 它响应迅速、动画流畅,追求极致的交互体验。 总体分为基础、弹层、滚动三大组件模块。可以说基本涵盖了我们移动端所有的组件需求。这里我们就用 cube-ui 来做一个简单的赛事类 APP,里面包含了几个很主要的组件。让我们先从初始化项目开始吧。初始化cube-ui项目cube-ui 为我们提供了...

2018-03-12 11:11:16 361

原创 慢启动

在tcp通信过程中,发送方发送数据时,会将数据拆分成很多数据包,包的大小具体根据网络来决定。那么当然,不可能一次只发一个数据包,一次发送的数据包数量就叫做拥塞窗口。   那么在连接初期,拥塞窗口不可能很大,因为网络情况未知,一下这么大的数据量有可能导致网络瘫痪。所以,tcp会根据慢启动算法来计算窗口大小,对发送数据量进行控制。 具体算法:(写不动了……先画张图吧)

2017-10-18 21:35:34 564

原创 js隐式转换

1.加号   当加号运算符时,String和其他类型时,其他类型都会转为 String;除此之外其他情况,都转化为Number类型 , 注: undefined 转化为Number是 为’NaN‘, 任何Number与NaN相加都为NaN。如果String类型的带有数字字符的比如: ‘1a’ ,’a1’ ,number也会转化为 NaN。var a="hello"; b="world";cons

2017-09-21 17:44:50 728 1

原创 webWorker初识

webWorker相当于为js创建了多线程一样,注意!!!这里只是相当于,js一定是单线程的!那么,当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。也就是说,在这段js代码运行完毕之前,页面是无法响应用户操作的。   而HTML5引入了一个工作线程(webWorker)的概念, 我们可以在浏览器后台运行Javascript,那么页面在Javascript运行期间依然可以响

2017-09-09 23:22:55 555

原创 css实现宽高比

头条一面就死在了这个问题上,于是在此好好研究一下。 要求:实现一个div,宽度是body的一半,宽高比满足4:3方法一:   利用将padding-top或padding-bottom设置成百分比,来实现高度满足宽度的某个比例。因为,当margin/padding取形式为百分比的值时,无论是left/right,还是top/bottom,都是以父元素的width为参照物的!。采用这种方法,需要把

2017-09-07 17:47:01 5211

原创 跨域传递cookie

首先,需要在服务端返回的头部信息中增加:  response.setHeader(“Access-Control-Allow-Origin”,”http://b.test.com“);    CORS请求默认不发送Cookie和HTTP认证信息。如果要把Cookie发到服务器,一方面要服务器同意,指定Access-Control-Allow-Credentials字段。Access-Contr

2017-09-05 20:28:04 2199

原创 跨域2

跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。详细请见跨域1    接下来直接飙方法: 1、document.domain+iframe的设置   对于主域相同而子域不同的例子,可以通过设置document.domain的办法来解决。具体的做法是可以在http://www.a.com/a.html和htt

2017-09-04 22:14:10 339

原创 HTTP2.0

http2.0的兼容性还不是很好,新版协议再好也需要业界的产品锤炼,需要基础设施逐年累月的升级换代才能普及。    http2.0的一些改进:1. HTTP/2 采用二进制格式传输数据,而非 HTTP/1.x 的文本格式。二进制格式在协议的解析和优化扩展上带来更多的优势和可能。。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认0和1的

2017-08-31 17:31:47 679

原创 自适应布居·总

自适应两栏布局:BFC实现css: .content{ height:700px; } .div1{ float: left; /*触发BFC*/ width:250px; height: 100%; background-color: pink; }

2017-08-27 21:13:25 377

原创 堆排序

大根堆定义为,每一个父亲节点都大于等于左右两个孩子节点(小根堆同理)。并且,大根堆一定是一棵完全二叉树。思想为从最后一个家庭开始(最后一个有孩子的父亲节点),将这个家庭调整为大根堆,然后父亲节点前移,将下一个家庭调整为大根堆……以此类推,最后,根节点就是最大的元素,然后将根节点与最后一个叶子节点交换,砍掉最后一个叶子节点(意思就是下一轮的排序它不参与)。#include <stdio.h>void

2017-08-27 16:50:26 413

原创 插入排序

基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。i++并重复第二步直到i==n-1。排序完成。void Insertsort1(int a[], int n)

2017-08-27 14:33:49 275

原创 归并排序

#include <stdio.h>void Merge(int a[],int start,int end){ int mid=(start+end)/2; int b[end-start]; int i,j,k; i=start; j=mid; k=0; while(i<mid||j<end) { //1、i没完

2017-08-27 12:52:37 339

原创 正则将每个单词开头字母转换为大写

这个问题其实特别特别的简单,然而我阿里一面的时候可能由于比较紧张,于是没有答的很全面。在此做以总结吧……   (1)纯正则方法var str = 'it is my cat';var new = str.replace(/\b\w/g,function(th){ return th.toUpperCase(); });console.log(new); //It Is M

2017-08-22 15:37:48 7859 2

转载 301与302

官方的比较简洁的说明: 301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表暂时性转移(Temporarily Moved ) ps:这里也顺带记住了两个比较相近的英语单词(permanently、temporarily),嘻哈! 详细来说,301和302状态码都表

2017-08-20 16:33:19 309

转载 36条雅虎军规

前端性能优化:http://www.mamicode.com/info-detail-139010.html

2017-08-20 16:15:34 616

原创 正则拆分url

直接po代码function getQueryItems(url){ var reg = /^(?:([A-Za-z]+):)?(?:\/{0,3})([A-Zaz.\-0-9]+)(?::(\d+))?(\/[^#?]*)?(?:\?([^#]*))?(?:#(.*))?$/; var result = url.match(reg); //result中存储分解下

2017-08-15 17:22:37 2927

转载 http详解

超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。    请求报文: HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成 1.请求行   请求行由请求方法字段、URL字段和HTTP协议版本

2017-08-15 13:23:24 362

原创 1px

less中:.border-scale(@color, @border-radius: 0px, @border-width: 1px 1px 1px 1px){ &:after{ content: " "; position: absolute; top: 0; left: 0; width: 200%

2017-08-14 17:35:19 382

原创 web storage 与 cookie

webstorage分为sessionStorage和localStorage。 sessionStorage 、localStorage 和 cookie 都是保存在浏览器 端,且同源的。 但是:   cookie数据始终在同源的http请求中携带(即使不需要),即 cookie在浏览器和服务器间来回传递;cookie数据还有路径 (path)的概念,可以限制cookie只属于某个路径下。

2017-08-14 10:07:33 288

原创 var ev = ev || event

event是事件对象(也是window的属性),但不是标准的,只有IE支持。 在W3C标准支持的浏览器下事件对象是引发事件函数的第一个参数,参数名随意。 所以,我们一般使用事件对象: function (ev){ var ev = ev || event; }而 || 的两边是不能反过来写的,不了解ev || event和event || ev 只能说明你对||操作符不熟悉。

2017-08-07 11:49:08 3237

原创 为什么设计稿是750px

前一阵子,在研究了物理像素、设备独立像素和css像素以及viewport后,我产生了一个问题,就是为什么我们的UI所给的设计稿是750px。   这里所说的750px并不是绝对的,750px是iphone6的物理像素,也叫屏幕分辨率。所以这里只是泛指移动端设计稿是按照设备的物理像素所给。那先来说一下这几个像素吧。 物理像素:     顾名思义,就是设备屏幕上的实际像素。也就是说这个手机被出厂

2017-08-06 23:01:10 29108 3

原创 实习1

把所有要用到的变量和对象定义在顶部var ua = require('didi-ua'); //require可以将依赖模块引入var DidiMonitor = require('didimonitor');var isDidi = ua.browser.name.isDidi();var isIOS = ua.os.name.isIOS();var isAndroid = ua.os.

2017-05-17 18:24:11 291

原创 GC—垃圾回收机制

JavaScript有自动垃圾回收机制,也就是说执行环境会负责管理代码执行过程中使用的内存。   原理:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是时时的,因为其开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行。   不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周期直至浏览器卸载页面才会结束。局部变量只在函数的执行过程中存在,而在这个过程

2017-04-24 17:42:18 328

原创 异步与Event Loop

JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核

2017-04-06 20:23:32 467

原创 关于我在360笔试中做到的一道毁三观的题(函数与变量同名)

昨天在答360笔试的时候,遇到这样一道毁三观的题;var a = 3;function a(){};console.log(type a);看到这段代码,你的第一反应是他应该输出什么!   我当时毫不犹豫,内心坚定无比的选择了function。这并不是因为后面覆盖前面的问题,而是我们之前在学习js预解析的时候,学过这样一段话,函数与变量同名时,函数优先级更高!于是我谨记,那么这道题中,最终生效

2017-03-26 16:22:06 403

原创 函数节流与函数防抖

有些浏览器事件会被用户在很短的时间内触发很多次,例如点击事件或滚动页面。如果你给窗口滚动事件添加一个事件监听函数(事件句柄),然后用户不停地快速上下滚动页面,那你的事件可能在一秒之内都会被触发很多次,这会导致严重的性能问题,比如说你的页面卡住了(假死),所以我们需要降低触发回调的频率。   下面就说一下优化这种高频执行js的方法,来提高页面速度和性能。 1.Throttling(节流 读音:丝s

2017-03-23 18:18:46 1220

原创 JS中的异步与Promise

我们知道,js的执行环境是“单线程”的。所谓”单线程”,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。   这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整

2017-03-14 18:06:56 709

原创 URI的编码与解码

对于URI后面的查询字段部分,如何拼接和获取。编码:function addURLParam(url,name,value){ url+=(url.indexOf("?") == -1 ? "?" : "&"); //indexOf取到子串第一次出现的位置 url+=encodeURIComponent(name)+"="+encodeURIComponent(value); return

2017-03-13 20:14:38 1046

原创 setTimeout中的闭包

我们直接举栗子说问题。for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i);}结果:开始输出一个 5,然后每隔一秒再输出一个 5,一共 5 个 5。 因为setTimeout会在和他同时执行的代码执行完成之后,再按照时间执行花括号里面的内容。也就是说,除了console

2017-03-01 21:02:03 984

原创 This

本文不系统讲解,只解释几个特殊例子。<script> var obj={ name:"mao", ftn00:(function(){ console.log(this); })(), ftn01:function(){ console.log(this); retur

2017-03-01 20:24:25 331

原创 作用域

本文不进行系统的讲解,只枚举及个特殊的例子。 例1<script> var str1 = "hello"; var str2 = "world"; function t1() { console.log(str1); console.log(str2); var str2 = "toby"; console.log

2017-02-26 11:19:40 264

原创 跨域

域名地址的组成: 当协议,子域名,主域名,端口号任意一个不同时,都算作不同域。不同域之间资源请求就叫做跨域。   如果你直接跨域访问了,浏览器将报错,因为你没有访问权限。javascript出于安全方面考虑,不允许跨域调用其它页面的对象。a.com域名下的js无法操作b.com域名下的对象。处理跨域问题:通过在同域名的web服务器端创建一个代理 在上海服务器上有一个服务: www.shan

2017-01-29 22:08:32 400

原创 两个<script>

javascript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行。这里有一个很重要的概念—代码块。代码块: JavaScript中的代码块是指由<script>标签分割的代码段。 <script type="text/javascript"> alert("这是代码块一");</script><script t

2017-01-29 13:04:07 1377

原创 JS预解析

首先我们先来说一下js的解析顺序。js引擎读取一段js代码,首先会进行预解析,也就是从上往下逐行读取代码,寻找所有的var和function(这个后面会详细解释)。当预解析完成后,js引擎在从第一行开始逐行运行js代码。    JS预解析的定义:    在当前作用域下,js运行之前,会把带有var和function关键字的事先声明,并在内存中安排好。然后再从上到下执行js语句。预解析只会发生在

2017-01-29 00:00:17 928

原创 浏览器的重排与重绘

浏览器要显示一个完整的页面,是一个复杂的过程,这里包含了重绘和重排。显示页面之前,浏览器需加载完页面中的所有组件——HTML标记、JavaScript、CSS、图片。加载完之后会解析生成两个内部数据结构——DOM树和渲染树。   DOM树表示页面结构,渲染树表示DOM节点如何显示。DOM树中的每一个需要显示的节点在渲染树种至少存在一个对应的节点(隐藏的DOM元素disply值为none 在渲染树中

2017-01-25 20:54:12 590

原创 jQuery.index()

index()函数用于获取当前jQuery对象中指定DOM元素的索引值。 语法:    jQueryObject.index( [ object ] ) 参数:    object: 可选/String/Element/jQuery类型表示指定元素的对象    (字符串为jQuery选择器选中的元素) 返回值:    index()方法的返回值为Number类型,返回指定元素的索引

2016-11-22 19:49:01 582

原创 媒体查询

两种方式:外链 <link type="text/css" rel="stylesheet" href="link.css" media="only screen and (max-width:480px)"/>内联 <style> @media screen and (min-width:480px){ body{ backgro

2016-10-31 20:44:48 347

原创 json

json是一种语法。采用键值对的方式存储和交换文本信息。 例:  { "staff": [{ "name": "霄羽", "age": 20 }, { "name": "二毛", "age": 20 }]}json格式:整体用花括号括起来,属性:值,成员之间用逗号隔开。 当前端从后台取数据时,

2016-10-29 18:27:25 198

原创 Ajax

Ajax是一种异步加载,部分更新的技术。 如:填写表单时,邮箱格式错误,用户名已存在等,会在你输入完成后就时事的提醒你,而不需要点击提交,刷新整个页面以后才告诉你。 这就是Ajax的牛逼之处:无刷新数据读取   网页的展示需要经过,浏览器(客户端)向服务端(服务器)发送请求,服务端返回响应。 请求:方法 get:查询,获取,一般不用于修改post:修改,删除,增加等url请求头:客

2016-10-29 17:31:57 319

mini-css-extract-plugin.jpg

mini-css-extract-plugin 打包结果示意

2021-07-10

空空如也

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

TA关注的人

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