Banquet 47
Upcoming SlideShare
Loading in...5
×
 

Banquet 47

on

  • 583 views

 

Statistics

Views

Total Views
583
Views on SlideShare
583
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Banquet 47 Banquet 47 Presentation 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(){ return { getInstance: function(){ var uniqueInstance; if(!uniqueInstance){ uniqueInstance = constructor(); function constructor(){ } // Private members. return uniqueInstance; var privateAttribute1 = false; } function privateMethod1(){ } … } })(); return { // Public members. atttibute1: 10, method1: function(){ … } } } MyNameSpace.Singleton.getInstance().method1();
  • Thanks!