Karl

诸葛亮从来不问刘备,为什么我们的箭那么少?关羽从来不问刘备,为什么我们的兵那么少?张飞从来不问刘备,兵临城下应该怎么办?如若万事齐备,你的价值何在?

博客园 首页 新随笔 联系 订阅 管理

05 2017 档案

摘要:一、写在前面的话 Node.js是一个开放源代码、跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于数据密集的事实应用程序。——来自维基百科 最近花了差不多近一个月的时间 阅读全文
posted @ 2017-05-31 09:50 半雪 编辑

摘要:eval(): 作用:它的作用是把对应的字符串解析成js代码并运行(将json的字符串解析成为JSON对象); 特点:它是一个全局函数; 缺点:1>在该函数内部申明的变量都是全局变量,且申明的变量不会提升; 2>耗性能,执行2次,一次解析成js语句,一次执行js代码; 举例: 1.对于服务器返回的J 阅读全文
posted @ 2017-05-31 09:39 半雪 编辑

摘要:移动浏览器原生click事件有300ms的延时,这是浏览器为了区分到底是双击还是单击事件。(实际上有些移动浏览器不支持双击事件。PC版chrome在手机模式下,当禁止用户双击缩放页面时(即有viewport meta标签时,不管user-scalable为yes或no),双击会触发两次click事件 阅读全文
posted @ 2017-05-22 09:05 半雪 编辑

摘要:每个 Vue 实例都会代理其 data 对象里所有的属性。 注意只有这些被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。 除了 data 属性,Vue实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的 data 属性区分。 模板语法 Vue 阅读全文
posted @ 2017-05-20 08:34 半雪 编辑

摘要:表格1 性能优化原则分类 目前大多数前端团队可以利用yui compressor或者google closure compiler等压缩工具很容易做到“精简Javascript”这条原则;同样的,也可以使用图片压缩工具对图像进行压缩,实现“图像优化”原则。这两条原则是对单个资源的处理,因此不会引起任 阅读全文
posted @ 2017-05-18 19:09 半雪 编辑

摘要:什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 跨域资源共享(CORS) CORS(Cross-Origin Resource Sharing)跨域资源共享,定义了必须在访问跨域资源时,浏览器与服务器应该如何沟通。CORS背后的基本思想就是使用自定义的HTTP头部让浏览 阅读全文
posted @ 2017-05-18 07:54 半雪 编辑

摘要:BFC是Block Formatting Context的缩写,直译过来就是“块级格式化上下文”。先不管它到底是什么,看一个例子: 结果:想必大家都了解,子元素float时父容器是不会被撑开高度的。一般的解决方法是给父容器加上 .clearFix类, 清除浮动后,父容器能自动获得正确的高度了:现在通 阅读全文
posted @ 2017-05-17 09:17 半雪 编辑

摘要:<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>PreLoading</title> <style> *{margin:0; padding:0; border:none; outline:0; text- 阅读全文
posted @ 2017-05-16 09:26 半雪 编辑

摘要:1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用||(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都 阅读全文
posted @ 2017-05-15 09:20 半雪 编辑

摘要:摘 要:本文阐述了MySQL DDL 的问题现状、pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数据表结构。 在一个软件生命周期中,我们都知道,前期的表结构设计是非常重要的,因为当表数据量一上来后再进 阅读全文
posted @ 2017-05-14 19:10 半雪 编辑

摘要:1、构建一个web服务器 以前玩php和jsp时用过Apache、汤姆猫服务器,nodejs则有不同,他是需要自己createServer。 在浏览器访问127.0.0.1:1111可以看到so easy!字样。 这里用到的时http模块到createServer方法,node的模块有三种,自有模块 阅读全文
posted @ 2017-05-13 09:30 半雪 编辑

摘要:【总结】浏览器的缓存机制 来源:http://blog.csdn.net/yzhou86/article/details/6864189 【文章一: iefirefox chrome safari缓存机制 】 Cache-Control Cache-Control 是最重要的规则。这个字段用于指定所 阅读全文
posted @ 2017-05-12 09:31 半雪 编辑

摘要:返回值 最常用的一种形式是函数作为返回值被返回 函数赋值 一种变形的形式是将内部函数赋值给一个外部变量 函数参数 闭包可以通过函数参数传递函数的形式来实现 IIFE 由前面的示例代码可知,函数F()都是在声明后立即被调用,因此可以使用IIFE来替代。但是,要注意的是,这里的Inner()只能使用函数 阅读全文
posted @ 2017-05-11 09:54 半雪 编辑

摘要:一、先说一个简单的概念——变量提升: 通过function+函数名的方式,声明的函数,可以在代码中的任何位置调用; 通过var定义变量的方式,声明的函数,则必须在声明之后进行调用,原因就是在变量定义之前调用时,变量的值为undefined; 二、说一个特别重要的概念——函数在定义的时候(不是在调用的 阅读全文
posted @ 2017-05-10 20:28 半雪 编辑

摘要:同步与异步 介绍异步之前,回顾一下,所谓同步编程,就是计算机一行一行按顺序依次执行代码,当前代码任务耗时执行会阻塞后续代码的执行。 同步编程,即是一种典型的请求-响应模型,当请求调用一个函数或方法后,需等待其响应返回,然后执行后续代码。 一般情况下,同步编程,代码按序依次执行,能很好的保证程序的执行 阅读全文
posted @ 2017-05-09 21:21 半雪 编辑

摘要:1、什么是跨域问题 在页面中使用js访问其他网站的数据时,就会出现跨域问题,比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口时,以及hybrid app中请求数据,浏览器会提 示一下错误: XMLHttpRequest cannot load http://你请求的域名. No 'A 阅读全文
posted @ 2017-05-08 10:00 半雪 编辑

摘要:如今的JavaScript技术界里最火热的一项技术应该是‘事件委托(event delegation)’了。使用事件委托技术能让你避免对特定的每个节点添加事件监听器;相反,事件监听器是被添加到它们的父元素上。事件监听器会分析从子元素冒泡上来的事件,找到是哪个子元素的事件。基本概念非常简单,但仍有很多 阅读全文
posted @ 2017-05-08 08:56 半雪 编辑

摘要:基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在 阅读全文
posted @ 2017-05-06 08:55 半雪 编辑

摘要:客户端验证是网页客户端程序最常用的功能之一,我们之前使用了各种各样的js库来进行表单的验证。HTML5其实早已为我们提供了表单验证的功能。至于为啥没有流行起来估计是兼容性的问题还有就是样式太丑陋了吧。 下面我们将来一步一步创造一个HTML5和CSS3的表单验证,只使用HTML和CSS。 完成后的如下 阅读全文
posted @ 2017-05-05 19:58 半雪 编辑

摘要:1、什么是闭包 闭包是有权访问另一个函数作用域的变量的函数。 简单的说,Javascript允许使用内部函数 即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。当其中一个这样的内部函数在包含它们的外部函数之外被 阅读全文
posted @ 2017-05-05 09:08 半雪 编辑

摘要:webview加载时有5个事件。触发顺序为loading、titleUpdate、rendering、rendered、loaded。webview开始载入页面时触发loading,载入过程中如果&lt;title&gt;节点已经解析并赋予新值,触发titleUpdate,页面开始渲染,触发rend 阅读全文
posted @ 2017-05-04 19:59 半雪 编辑

摘要:原生UI的设计目的 HTML和css有一个优势就是灵活的样式设计。在大多数情况下,我们都应该使用HTML+css来负责UI。但是有些情况下,我们发现HTML+css的UI不满足需求。1. 绝对置顶HTML的video等元素,以及5+的map等原生元素,这些原生控件的层级高于div。对于一些弹出的需要 阅读全文
posted @ 2017-05-04 19:58 半雪 编辑

摘要:下拉刷新 为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机(Android4.4以下)上,DIV动画经常出现卡顿现象(特别是图文列表的情况)。解决方案还是webview。 既然拉div卡,那就不拉div,改拉webview。webview的拉动是原生的,回弹效 阅读全文
posted @ 2017-05-04 19:57 半雪 编辑

摘要:App的顶部一般有titlebar,下面是list。常见的一个需求是要在list滚动时,titlebar不动。这个简单的需求,实现起来其实并不简单。 在普通web上的做法是使用div的滚动条,把list放到div里。但是很不幸的是,div滚动条在Android4.4以下的手机上非常非常卡,滚动完全无 阅读全文
posted @ 2017-05-04 19:54 半雪 编辑

摘要:窗体切换白屏的现实问题 HTML5的性能比原生差很多,比如切页时白屏、列表滚动不流畅、下拉刷新和上拉翻页卡顿。在低端Android手机上,很多原生App常用的功能和体验效果都很难使用HTML5技术模拟。我们首先来看第一个问题,如何避免切页白屏。 浏览器的页面在切换时,由于其页面加载机制,在跳转到下一 阅读全文
posted @ 2017-05-04 19:25 半雪 编辑

摘要:下面是我对闭包的理解:(把他们整理出来,整理的过程也是在梳理) 1.首先,在理解闭包之前: 我们首先应该清楚下作用域和作用域链 作用域:每个函数定义时创建时自己的环境即作用域 作用域链:函数内可访问自身和父级作用域中的变量,函数外不可访问函数内的私有变量 解读——在这里,变量a是属于全局域的,变量b 阅读全文
posted @ 2017-05-04 10:38 半雪 编辑

摘要:1.undefined表示"缺少值",就是此处应该有一个值,但是还没有定义,转为数值时为NaN。典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined。 (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。 (3)对象没有赋值的属性,该属性的值为undefin 阅读全文
posted @ 2017-05-04 10:34 半雪 编辑

摘要:一、reduce 的用法 reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。 上面代码中,reduce对数组arr的每个成员执行sum函数。sum的参数a是累积变量,参数b是当前的数组成员。每次执行时,b会加到a,最后输出a。 累积变量必须有一个初始值,上例是reduce函数的第 阅读全文
posted @ 2017-05-03 19:10 半雪 编辑

摘要:一、什么是内存泄漏? 程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。 对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。 不再用到的内存,没有及时释放,就叫做内存泄漏(memor 阅读全文
posted @ 2017-05-03 19:08 半雪 编辑

摘要:JavaScript值类型和引用类型有哪些 (1)值类型:数值、布尔值、null、undefined。 (2)引用类型:对象、数组、函数。 三、如何理解值类型和引用类型及举例 我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比喻合不合适,^-^。 (1)值类型理解:变量的交换等于在一个新的地方 阅读全文
posted @ 2017-05-03 09:43 半雪 编辑

摘要:vue-resource特点: 1. 体积小 vue-resource非常小巧,在压缩以后只有大约12KB,服务端启用gzip压缩后只有4.5KB大小,这远比jQuery的体积要小得多。 2. 支持主流的浏览器 和Vue.js一样,vue-resource除了不支持IE 9以下的浏览器,其他主流的浏 阅读全文
posted @ 2017-05-02 19:30 半雪 编辑

摘要:一维数组的遍历 <script> //循环遍历数组 var animals = ["cat",'dog','human','whale','seal']; var animalString = ""; for(var i = 0;i<animals.length;i++){ animalString 阅读全文
posted @ 2017-05-01 20:26 半雪 编辑

摘要:动态创建一个script标签,然后在全局声明一个函数用来接收数据。 用处:解决主流浏览器不能进行跨域数据访问的问题。 依据:由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素 阅读全文
posted @ 2017-05-01 20:18 半雪 编辑

摘要:异步加载 异步加载也叫非阻塞模式加载,浏览器在下载js的同时,同时还会执行后续的页面处理。在script标签内,用js创建一个script元素并插入到document中,这种就是异步加载js文件了; (function() { var s = document.createElement('scri 阅读全文
posted @ 2017-05-01 20:15 半雪 编辑