quentin 的blog

排版引擎和JS引擎

排版引擎(Layout Engine)

主要是是用来让网页里浏览器绘制网页。目前流行的排版引擎如下:

WebKit 

  - Apple Safari

  - Google Chrome

Trident

  - Internet Explorer

Gecko

  - Firefox

 

JS引擎(JS Engine)

顾名思义,JS engine是专门用来处理JS脚本的程序。

主流的浏览器的JS engine如下:

Mozilla

  SpiderMonkey - Firefox 1.0~3.0

  Rhino - 由Mozilla基金会管理,open source,完全以java编写的。

  TraceMonkey Firefox 3.5~3.6

  JaegerMonkey  Firefox 4.0 + 

  IonMonkey Firefox 18.0+

Google

简单描述位,字节和字在计算机中的表示

比特:

位或者比特(Bit)也简称小b(b)。

字节:

Byte简称大B(B)。

1个字节(B) = 8个比特(b)

所以:

常说的16位电脑,它是以: 16b/8 = 2个字节 为一个存储单元存储的。

常说的32位电脑,它是以: 32b/8 = 4个字节 为一个存储单元存储的。

常说的64位电脑,它是以: 64b/8 = 8个字节 为一个存储单元存储的。

字:

字是由一个或多个字节组成的。

因为计算机里最小的处理单位是:字节(B),所以字肯定是字节的整数倍。一般来说,英文状态下,键盘上能敲出来的字都是一个字节的。但是如果是中文或者日文,一般是2个字节的。

但是,如果你是UTF8编码格式的话,字节数是1-6范围内的。因为UTF8是由1-6字节编码UNICODE字符。

 

博客分类: 

关于二维码

什么是二维码:

http://baike.baidu.com/view/132241.htm

使用PHP生成二维码:

http://www.phpernote.com/php-function/638.html

http://hi.baidu.com/ylf575/item/98267014cef49a25f7625c71

在线生成二维码:

http://cli.im/url?run&id=426501

博客分类: 

面向对象编程的基本原则

1、单一职责原则(Single-Resposibility Principle):

对一个类而言,应该仅有一个引起它变化的原因。本原则是我们非常熟悉地"高内聚性原则"的引申,但是通过将"职责"极具创意地定义为"变化的原因",使得本原则极具操作性,尽显大师风范。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行。其实OOD的实质,就是合理地进行类的职责分配。

2、开放封闭原则(Open-Closed principle):

"软件实体应该是可以扩展的,但是不可修改。"本原则紧紧围绕变化展开,变化来临时,如果不必改动软件实体裁的源代码,就能扩充它的行为,那么这个软件实体设计就是满足开放封闭原则的。如果说我们预测到某种变化,或者某种变化发生了,我们应当创建抽象类来隔离以后发生的同类变化。在Java中,这种抽象是指抽象基类或接口;在C++中,这各抽象是指抽象基类或纯抽象基类。当然,没有对所有情况都贴切的模型,我们必须对软件实体应该面对的变化做出选择。

3、Liskov替换原则(Liskov-Substituion Principle):

博客分类: 

每天看上几遍

 

一、钱是给内行人赚的——世界上没有卖不出的货,只有卖不出的货的人。

二、想干的人永远在找方法,不想干的人永远在找理由;世界上没有走不通的路,只有想不通的人。

三、销售者不要与顾客争论价格,要与顾客讨论价值。

四、带着目标出去,带着结果回来,成功不是因为快,而是因为有方法。

五、没有不对的客户,只有不够的服务。

六、营销人的职业信念:要把接受别人拒绝作为一种职业生活方式。

七、客户会走到我们店里来,我们要走进客户心里去;老客户要坦诚,新客户要热情,急客户要速度,大客户要品味,小客户要利益。

八、客户需要的不是产品,而是一套解决方案,卖什么不重要,重要的是怎么卖。

九、客户不会关心你卖什么,而只会关心自己要什么。没有最好的产品,只有最合适的产品。

 

博客分类: 

活着,人越成长越孤单

一个人坐在空荡荡的办公室,思绪在儿时,中学,大学和现在来回的穿梭。

儿时的童真,无拘无束的嬉戏打闹,总是有那么多天真灿烂的笑脸;

青春期的叛逆,冲动,骄傲,悔恨编织了青春期一幕幕往事;

曾经的兄弟朋友是那么的贴心纯朴,一个电话,一句问候就可以心领神会。

可是,人慢慢长大了,童年的玩伴,曾经的兄弟们渐渐淡出视线,为了各自的理想和追求默默打拼着。无奈,生活面前再强的人都要学会低头。

可如今的同事,真正能做兄弟的有多少?谁真的是在用心说话?还是只是客套罢了?

慢慢的习惯一个人挣扎,一个人肩负一切。习惯躲在自己的世界里,慢慢就会散失一些基础的交际能力。

 


 

笔记

——周笔畅

我看见天空很蓝 就像你在我身边的温暖

生命有太多遗憾 人越成长越觉得孤单

我很想飞 多远都不会累 才明白爱的越深心就会越痛

我只想飞 在我的天空飞 我知道你会在我身边

回忆的画面 记录的语言 爱始终是你手中长长的线

博客分类: 

Chrome Opera 中 for-in 语句遍历出对象属性的顺序与定义的不同

问题描述

Chrome & Opera 中使用 for-in 语句遍历对象的属性时,遍历出的属性顺序与对象定义时不同。所以在使用 for-in 来处理属性顺序依赖的问题时常常会出错。

问题分析

Chrome Opera 中使用 for-in 语句遍历对象属性时会遵循一个规律,它们会先提取所有 key 的 parseFloat 值为非负整数的属性, 然后根据数字顺序对属性排序首先遍历出来,然后按照对象定义的顺序遍历余下的所有属性。其它浏览器则完全按照对象定义的顺序遍历属性。

示例:

博客分类: 

页面中实现无刷新上传文件

在web中实现无刷新上传文件有几种方式:

 

1. 使用HTML5中的FormData和fileReader实现。但是这种方式受限于浏览器。如:IE只适用于IE10。

可参考:http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

2. 使用隐藏的iframe提交。

可参考:http://confi.blog.51cto.com/5271328/1174071

 

最近,在Drupal 7里发现内容类型(content type)为image的字段都可以实现无刷新上传。所以很想知道它是怎么实现的。经过研究发现,其实Drupal7内引入了一个js lib——jquery.form.js。

使用挺简单的:

index.html 

博客分类: 

页面