检查文件是否为UTF-8 with BOM的一段小脚本。其实之前楠乔有写一个JScript版本的,但是偶经常在Mac下作业,它只能在Windows上运行有些美中不足,正好在学习Go,便用其写了一个go语言版本的。
https://gist.github.com/3342382
-EOF-
检查文件是否为UTF-8 with BOM的一段小脚本。其实之前楠乔有写一个JScript版本的,但是偶经常在Mac下作业,它只能在Windows上运行有些美中不足,正好在学习Go,便用其写了一个go语言版本的。
https://gist.github.com/3342382
-EOF-
北京时间6月20号0点注册Linode的新用户会获得$100刀的优惠券,老用户新开实例会有三个月的免费期,登陆后台后可以在页面顶部看到倒计时。
原文 http://blog.linode.com/2012/06/16/linode-birthday-giveaway/
欢迎使用我的referral code: 8dd6ddd391fc320d9f55ad101e051bde767df599
-EOF-
哇喔,两年前的东西了,放在硬盘里,直到今天整理的时候才翻出来。
—废话结束,以下是正文—
Ajaxifying,Cacheing and Pipelining Facebook Website 这哥们能说中文
Site speed is critical to Facebook
生成时间/传输时间/渲染时间
Time-to-interact(TTI)
重要的内容首先到达
Quickling/PageCache/BigPipe 三大技术
Motivation:remove redundant work 用户是连续访问多个页面,页面过度时只生成不重复的内容
remove redundant work via Ajax 让浏览器不知道在更换页面,不进行页面卸载,通过Quickling来载入下一页(ajax载入,Quickling置换)
PageCache 缓存访问过的页面
采用Quickling技术可能降低延迟10%~30%,降低服务器开销(避免了内容的重复生成)
目前有45%的请求时通过它完成的
PageCache 缓存访问过的页面
Motivation – temporal locality
内容保存在js变量里面
挑战
实时性:Real time updates
获取更新后的好友更新
希望两分钟内的变更能够在恢复数据的出现在用户页面里
回调函数在恢复页面时执行
一致性:cache consistency
修改过的内容
访问其它页面又回到当前页面,让用户的修改反应在缓存里。记录成功的回调函数重新执行
Cross-page writes
在另外页面修改,内容反应到本页面,ajax携带更新部分的内容,更新局部页面
BIgPipe
Pagelet Programming model
Self contained
程序员可以设置优先级
Building Yahoo!’s Next Generation Mail
Parallelization
Modularity
A first impression is everything.
Web Service ,Page Download/Css download/js download
不同浏览器有不同的方法
不同网络的用户有不同的方法
3d
简单的开发
快速开发
轻松的调试
simple development process
quick deployment
easy debugging
Intefaces
require_static(A_css);
上上个周末折腾出来的东西,经验和语言能力都有限,还有很多疏漏和误译,欢迎有兴趣的朋友提交”补丁”
翻译版托管在GitHub上,采用markdown语法撰写:
https://github.com/darcyliu/google-styleguide/blob/master/JSONStyleGuide.md
附一份导出的PDF版:
http://ioiocloud.sinaapp.com/cloud/JSONStyleGuide.pdf
Object-Oriented JavaScript 笔记
Object-Oriented JavaScript笔记(一)
Object-Oriented JavaScript笔记(二)
Object-Oriented JavaScript笔记(三)
Object-Oriented JavaScript笔记(四)
Object-Oriented JavaScript笔记(五)
Object-Oriented JavaScript笔记(六)
Object-Oriented JavaScript笔记(七)
第八章 编码和设计模式
编码模式
分离行为
内容与展现,行为分离
HTML:
1.尽可能的不使用style属性
2.与展现相关的tag都不应该被使用,如
3.根据语义使用相关的tag
行为:
1.尽可能减少script标签的数量
2.避免内联的事件(DOM Level 0)
3.不要使用CSS表达式
4.不影响禁用脚本的用户
5.在body标签闭合前引入脚本
命名空间
避免使用全局变量名以降低命名冲突的可能性。
为了简化编码,可以提供一个namespace()方法用于构造命名空间。
分支(条件)初始化
避免在运行时做特性嗅探,在初始化时候先嗅探再初始化相关函数。
惰性定义(延迟定义)
跟条件初始化类似,在需要使用到的时候再完成实际的函数定义工作。
参数对象化
使用对象的形式来传参数。
虽然JS支持可变参数,但是参数对象化后可以不用记住参数顺序,而且方便以后扩展。
私有属性及方法
内部属性和方法别让外部修改。
特权方法
用它来访问私有属性和方法。
将私有方法公开
自启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var MYAPP = {}; MYAPP.dom = function(){ // initialization code... function _private(){ // ... body } return { getStyle: function(el, prop) { console.log('getStyle'); _private(); }, setStyle: function(el, prop, value) { console.log('setStyle'); } }; }(); |
链式调用
返回this
使用JSON
PS:原文中这节的示例代码是使用的单引号,这是十分不好的,应该避免。虽然在JS中单双引号等效,但标准中指明了是使用双引号。
设计模式
分三类:创建模式、结构模式和行为模式
-EOF-