摘要:
最高性能的观察者模式特点:1、性能经测试确实高出目前市面上的所有类似的系统2、而且代码相当精简。请看我对arbiter的源码分析3、功能强大,虽然代码精简,但功确非常强大,请看下面的API介绍================================================================================官方网址:http://arbiterjs.com性能测试地址http://jsperf.com/pubsubjs-vs-jquery-custom-events/66======================================== 阅读全文
摘要:
var Arbiter = (function () { var create_arbiter = function () { var subscriptions = {};// 订阅者 var wildcard_subscriptions = {};// 通配符队列对象 var persistent_messages = {};// 公共消息,除开特别指定(persist:false的)订阅者之外,所有订阅者都要接收此消息,即使是消息发布之后再订阅 var id_lookup = {};// 订阅者队列以索引, 供:unsubscribe和resubscribe使用 var new... 阅读全文
摘要:
在公司近期做一个关于用html5和c++封装webkit内核实现游戏大厅的项目;简称html5游戏大厅,可以以APP方式接入各种技术实现的游戏,比如webgame,客户端游戏,flash游戏等。游戏大厅其实C++早就做的很成熟了并且已经运营多年,但由于近期HTML5的势头强劲,加之google的v8 javascript引擎之强力,公司决定尝试性用c++打包webkit内核,在webkit上用html5来实现游戏大厅的游戏界面布局,本地缓存,通信等;========== C++实现的游戏大厅有以下几点弊端 =======1、UI布局比较困难;2、一旦UI上有一点点变化,则需要用户更新整个或部分 阅读全文
摘要:
服务端:express3.0的开启服务的写法// Express web servervar app = express();// ...// Server Listenhttp.createServer(app).listen(app.get('port'), function(){ //log});//socket io listenvar io = require('socket.io').listen(app);客户端引入socket.io.js如果按以前的直接这样引用:<script src="/socket.io/socket.io. 阅读全文
摘要:
我们在做ie6下png透明的时候往往是用别人写好的JS文件来解决,这样很方便比如DD_belatedPNG.js但是这样的JS无法解决缩放后的<img>标签透明,缩放后的图片会被它无视掉。解决办法:其实用JS来解决PNG透明问题,JS最终还是给需要透明的元素加上了IE特有的透明滤镜与我们手动在CSS上添加IE透明滤镜是一样的。IE6透明滤镜的语法请网上自行搜索,大致是以下写法普通方法:background:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="xxx.png" , 阅读全文
摘要:
现在html5被炒的很火,特别是chrome的版本不断更新,越来越多的css3属性的支持。到目前为止确实可以使用css3+html5制作出可以媲美桌面应用的web应用了。除了IE的兼容性问题,其它浏览器基本上已实现W3C所制定的那套东西,当然chrome中其中表现最好的一个浏览器,想用html5开发应用,要么逼客户使用chrome或firefox浏览器,要么用开源的webkit自己封装一个客户端环境。后者就是我们公司采用的方案前段时间为公司开发了一个基于html5+css3为前端基础的游戏,名叫"农夫乐园",类似于QQ的玫瑰小镇,不同的是我们的游戏是用html5+css3实 阅读全文
摘要:
在为公司编写一个jquery表格插件,插件实现的功能是:1、静态分页数据2、过滤数据3、按每列数据格式排序4、鼠标可动态拖动每列的宽度5、表头固定其它的功能倒容易实现,拖动以动态调整每列宽度就纠结了很久,拖动功能其实也容易实现。关键是拖动精确度一直不对。查不出原因。以为是算错了。纠结了很久,偶尔发现通过jquery直接css('width',xxx)这样的方法设置列宽度即,设置style="width:xxxpx"与直接在td上设置width="xxpx"是有区别的。解决的方法是直接attr('width',xxpx);代 阅读全文
摘要:
function addEvent(element, type, handler) { //为每一个事件处理函数分派一个唯一的ID if (!handler.$$guid) handler.$$guid = addEvent.guid++; //为元素的事件类型创建一个哈希表 if (!element.events) element.events = {}; //为每一个"元素/事件"对创建一个事件处理程序的哈希表 var handlers = element.events[type]; if (!handlers) { handlers... 阅读全文
摘要:
创建绑定this上下文环境的并且可重用的控制器对象,//this使用局部上下文基础模型(function($, exports){ var mod = function(includes){ if(includes) this.include(includes); }; mod.fn = mod.prototype; //将函数上下文this绑定到mod上 mod.fn.proxy = function(func){ return $.proxy(func, this); }; //documentContent加载完后执行相应的func回调 mod.fn.load = function(.. 阅读全文
摘要:
var exports = this;(function($){ var mod = {}; //返回Controller模型 mod.create = function(includes){ var result = function(){ this.init.apply(this, arguments); }; result.fn = result.prototype; result.fn.init = function(){}; result.proxy = function(func){ return $.proxy(func, this); }; resul... 阅读全文
摘要:
读书笔记:基于mvc的javascript web富媒体应用开发,模型和数据Model类//新建类的函数Object.create,ECMAScript5已经实现if(typeof Object.create !== 'function'){ Object.create = function(o){ function F(){}; F.prototype = o; return new F(); };}//模型var Model = { inherited: function(){}, created: function(){}, prototype:{//用于模型实例继承用 阅读全文
摘要:
javascript的this关键字很特别和actionscript2.0时期this指向是一样的,如果你以前是个actionscript2.0的coder那肯定是往事不堪回首。actionscript3.0以后this关键字就是指向类本身,而javascript至今还是未实现this始终指向类本身的功能。新版本的ECMAScript5中已经加入了bind函数以控制this关键字的绑定,但是在这之前最好还是自己实现bind函数,通过判断Function.prototype.bind是否支持来实现自己的bind函数,如果已经实现则使用浏览器原生支持的方法。1、简易的绑定this到某对象上if(! 阅读全文