摘要: 项目初衷 最初的场景是用户在对 购物车 的操作中,由于用户对购物车的每次操作(包括选择,调整数量)都需要计算商品的促销和分组的情况,而这段逻辑的计算都需要调用后端的接口,那么瓶颈来了: 请求时间长——一次 HTTPS 的请求对于 web 性能有很大的影响,尤其是对于移动端来说,用户所在的网络状况直接 阅读全文
posted @ 2016-12-27 19:23 蓝莓调调 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 问题描述 从某天起,在大群里有 KOL 用户反馈:在微信客户端里打开商品详情页会出现页面尺寸放大的现象: 出现的频次不确定,不能稳定复现,且在北京、长沙几个地域均出现了该情况。 技术前提 出现这种现象的前提,是因为前端配置了页面的 viewport meta 标签,并使用 JS 动态根据设备尺寸和像 阅读全文
posted @ 2016-12-21 11:42 蓝莓调调 阅读(247) 评论(1) 推荐(0) 编辑
摘要: 在微博上看到有人讨论 attributes 与 properties,甚至 arguments 与 parameters 的区别。正好在看到一篇好的网文,翻译共享。文本来自:Attributes and custom properties——By llya KantorAttributes and custom properties(特性与自定义属性)PropertiesAttributesProperties 和 Attributes 的同步idhrefvalueclass/className旧式IE浏览器的乐趣作为DOM节点的 Attributes总结一个 DOM 节点包含 attribu 阅读全文
posted @ 2013-04-24 14:27 蓝莓调调 阅读(544) 评论(0) 推荐(0) 编辑
摘要: JS里的异常处理JS的异常捕获与处理可以从它的 try-catch 语法结构说起,具体形式如下:try{ ... //异常的抛出}catch(e){ ... //异常的捕获与处理}finally{ ... //结束处理}其中,try块:try块包含的是可能产生异常的代码,在这里面直接或者在里面通过调用函数里间接抛出的异常都可以捕获到。部分浏览器还可以找到具体抛出的位置。详见e.stack。catch块:catch块,是捕获异常,并处理异常的地方,包括条件捕获和非条件捕获。//条件捕获与非条件捕获try { throw new Err();}catch(... 阅读全文
posted @ 2013-04-22 21:42 蓝莓调调 阅读(2410) 评论(0) 推荐(1) 编辑
摘要: 闭包使用时一个常出现的错误,现分析一下,给例子:function foo(){ var i; for(i = 0; i < 10; i++){ setTimeout(function(){ console.log(i); },1000); }}foo(); //10,10,10,10,10,10,10,10,10,10这是秘密花园给的例子,在setTimeout方法里创建了一个闭包,调用了外层函数的 i 属性。连续10次调用setTimeout方法,在1秒后连续输出了10个数字。这里调用setTimeout方法主要是用来... 阅读全文
posted @ 2013-04-17 14:23 蓝莓调调 阅读(1457) 评论(13) 推荐(0) 编辑
摘要: 名词理解: prototype属性,是函数对象特有的属性,不存在其他对象中(函数也是对象)。每当创建一个新函数,该函数就会自动包含一个prototype属性,这个属性用来指向函数的原型对象。 prototype对象,即原型对象。 原型对象里包含着实例中需要共享的属性和方法。这里要注意,由于原型对象本身就是对象,那么默认的原型对象也是Object对象的实例。 [prototype]指针,是ECMAScript 5中定义的一个名称,是构造函数创造的新实例中指向构造函数原型对象的指针,也就是部分浏览器中可见到的__proto__属性。 见如下例子:function Foo(){} //... 阅读全文
posted @ 2013-04-12 18:18 蓝莓调调 阅读(1092) 评论(2) 推荐(0) 编辑
摘要: RegExp对象的创建: 常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择:var reg1 = /'\w+'/g;var reg2 = new RegExp('\'\\w+\'','g'); 对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠“ / ”括起来了;而是字符串中必须要对引号“ ‘ ”和转义符号“ \ ”进行二次转义。 此外,无论是直接量还是RegExp()构造函数,都是生成了 阅读全文
posted @ 2013-04-11 16:50 蓝莓调调 阅读(2214) 评论(0) 推荐(1) 编辑
摘要: linux中的find的命令查找文件的重要方式,辅以其他的bash命令可以实现强大的操作效果。先看看放find命令的基本组成:find pathname -option [-print -exec -ok ...]分类记忆各项属性参数~ pathname:指定find命令的查询根路径,例如 ‘ / ’,‘./ ' 等。 同时还可在-path参数中指定搜索路径。 -option: 1、文件操作: -name 用引号” “将查询的文件名括起来,可适用于简单的正则表达式(应改为shell的元字符,下同)。 -type 指定查找文件的类型 ... 阅读全文
posted @ 2013-04-09 17:07 蓝莓调调 阅读(19030) 评论(0) 推荐(2) 编辑
摘要: 打开文件操作:resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )可以看到,函数返回的是一个资源句柄(resource handle),类似与C中的文件指针,读和写都从文件的指针处开始。$filename是文件的路径,可以使用绝对路径和相对路径。$mode是打开文件的模式,也就是文章的重点。$use_include_path 规定是否搜索指定的包含路径。$context是上下文选项。后面两个可以不用管,主要是mode参数。mode是 阅读全文
posted @ 2013-04-03 16:27 蓝莓调调 阅读(1219) 评论(1) 推荐(0) 编辑
摘要: VIM的强大就不多说了,虽然VIM的学习曲线很长很陡,但是坚持下来收获还是很大的。告诉自己每天坚持学习1~2个命令,将来就会很得心应手。今天讲讲几个普通模式(normal mode)下,移动的命令和小技巧,一对一对来记:w 和 b —— w 是向后移动一个单词,每次光标指在单词的首字母 b 是向前移动一个单词,每次光标指在单词的首字母 例如:I love Johnny, wherever he lives. 本来光标在love的l,按下“w”后,光标就移动到Johnny的J了。 同理,按下“b",光标就会向前移动,即回到love的l。e 和 ge —— 与上一对类... 阅读全文
posted @ 2013-04-01 21:31 蓝莓调调 阅读(1181) 评论(5) 推荐(1) 编辑