banquet 47
TRANSCRIPT
一个艰难的决定云渺
2010.11.08
9月27日360推出个人隐私保护器,专门曝光“窥私”软件, 直指QQ。
9月28日腾讯称360浏览器涉嫌借色情网站推广
10月14日腾讯正式起诉360不正当竞争
10月28日360弹窗指责马化腾享受经适房补贴
10月29日360推扣扣保镖 称让QQ安全快速更好用
11月3日腾讯决定在装有360软件的电脑上将不能使用QQ。对此360推出360 Web QQ
客户端,但旋即被腾讯以关闭Web QQ服务的方式回击。11月4日
360要求腾讯向6亿QQ注册用户道歉11月5日
金山、傲游、可牛、百度、搜狗五厂商今日在北京召开联合发布会,宣布将不兼容360系列软件。
?
世界 浏览器 使用统计
中国 浏览器 使用统计
中国 手机浏览器 使用统计
世界 搜索引擎 使用统计
http://gs.statcounter.com/
?单例是一个只能被实例化一次并且可以通过一个众所周知的访问点访问的类。
public class Singleton {private static Singleton uniqueInstance = null; //标识private Singleton(){ } //构造函数public static Singleton getInstance() {
if (uniqueInstance == null){uniqueInstance = new Singleton ();
}return uniqueInstance;
}}
Singleton. getInstance(); //获取单例
?JavaScript单例是一个用来划分命名空间并将一批相关方法和属性组织在一起的对象
// 最简单的单例var Singleton = {
attribute1: true,attribute2: 12,method1: function(){
…},method1: function(){
…}
}
?划分命名空间:
Ext = { }; //全局
//防止全局变量污染、使代码组织有序合理Ext.util = { }; Ext.lib = { };
Ext.util.JSON = { };Ext.util.Observable = { };Ext.util.TaskRunner = { };
?网页专用代码的包装器
Namespace.pageName = {// page contants.CONSTANT_1: true,CONSTANT_2: true,
// page methods.method1: function(){ … },method2: function(){ … },
// Initializtion method.init: function(){ … }
}
addLoadEvent(Namespace.pageName.init);
?拥有私有成员的单例(下划线表示法)
GiantCorp.DataParser = {
// Private methods._stripWhitespace: function (str){
return str.replace(/\s+/, ‘’);},_stringSplit: function (str, delimiter){
return str.split(delimiter);}
// Public method.stringToArray: function(str, delimiter, stripWS){
…}
}
?拥有私有成员的单例(使用闭包)
MyNameSpace.Singleton = (function(){// Private members.var privateAttribute1 = false;function privateMethod1(){
…}return {
// Public members.publicAttribute1: 10,publicMethod1: function(){
…}
}})();
惰性实例化
MyNameSpace.Singleton = (function(){
var uniqueInstance;
function constructor(){// Private members.var privateAttribute1 = false;function privateMethod1(){
…}return {
// Public members.atttibute1: 10,method1: function(){
…}
}}
return {getInstance: function(){
if(!uniqueInstance){uniqueInstance = constructor();
}return uniqueInstance;
}}
})();
MyNameSpace.Singleton.getInstance().method1();
Thanks!