Ruby's Louvre

每天学习一点点算法

导航

上一页 1 ··· 43 44 45 46 47 48 49 50 51 ··· 125 下一页

2012年11月23日 #

javascript 堆栈与列队

摘要: javascript数组是一个逆天的存在,到了ecma262v5,它已经是堆栈,列队及迭代器的合体。有时候我们不需要这么强大的东西,这只要考虑到for循环太麻烦了,我们只需要非常简单的遍历,于是想用普通对象模拟一个就是。首先是堆栈,先进后出 function Stack(){ } Stack.prototype = { add: function(el, pt){ this._first = pt = {//_first是不断变的 ... 阅读全文

posted @ 2012-11-23 21:08 司徒正美 阅读(4283) 评论(7) 推荐(0) 编辑

2012年11月21日 #

一个简单的加载系统

摘要: var check = {}require = function(name, callback){ //name切割成多个模块名,然后转换为URL //for循环 //这里会运行于iframe中 var s = document.createElement("script") document.body.appendChild(s) s.src = name //for循环结束 check[name] = callback //以后check[name]会对应一个对象}//这是执行回调require.exec = function(factory... 阅读全文

posted @ 2012-11-21 10:11 司徒正美 阅读(1406) 评论(0) 推荐(0) 编辑

判定模块加载时是否存在循环依赖

摘要: 循环依赖是所有语言的加载器都是大头的问题,除非你的模块都是像spring那么利用Ioc进行控制反转,那么出现循环依赖就是死结。对此,我们唯一能做的事是,在第一个循环依赖出现时就立即通知用户查看它们的依赖列表。在AMD大肆普及动态加载的好处后,大家应该隐藏知道有两个方法干这事。一个定义模块的define方法,另一个是加载模块的require方法。define方法的参数为define(name?, deps? ,factroy), 换言之模块名与依赖列表都不是必须的,require参数为require(names , callback)。当我们用require一组模块,将它们的返回值传到回调中前, 阅读全文

posted @ 2012-11-21 10:07 司徒正美 阅读(4921) 评论(2) 推荐(2) 编辑

2012年11月20日 #

Mozilla Firefox 17 正式发布

摘要: Firefox17今天正式发布,启用危险插件点击播放策略。对于有安全隐患的旧插件,用户在收到安全提醒后需要手动点击才可使用。进一步避免老版本插件引入安全隐患。支持OSX10.8引入的通知中心。在地址栏AwesomeBar使用更大的图标。Maps和Sets支持遍历。实现SVGFillPaint和StrokePaint操作。提高Web控制台、调试器和开发者工具条的载入速度。在页面Inspector中增加蒙版功能,更方便DOM编辑。实现HTML5的沙箱属性,更进一步提升安全性。超过二十项性能调优,特别是新建标签页时。修复了在部分网页程序中指针锁的问题,以及在固定抬头的网页中的滚动问题。 阅读全文

posted @ 2012-11-20 23:03 司徒正美 阅读(697) 评论(0) 推荐(0) 编辑

2012年11月19日 #

MVC历史演化

摘要: MVC已经成为我们最常误用的模式,人们之所以常常误用MVC,很大程度上是因为混淆了不同的MVC变体。 Classic MVC Classic MVC 大概上世纪七十年代,Xerox PARC的Trygve提出了MVC的概念。 并应用在Smalltalk系统中,为了和其它类型的MVC加以区分,历史上习惯的称之为Classic MVC。 Classic Mvc模式 Model:封装领域数据及逻辑 View... 阅读全文

posted @ 2012-11-19 14:30 司徒正美 阅读(4262) 评论(2) 推荐(3) 编辑

jQuery最核心的基础设施之一——数据缓存模块进化史

摘要: 数据缓存系统最早应该是jQuery1.2引入的,那时它的事件系统完成照搬DE大神的addEvent.js,而addEvent在实现有个缺憾,它把事件的回调都放到EventTarget之上,这会引发循环引用,如果EventTarget是window对象,又会引发全局污染。有了数据缓存系统,除了规避这两个风险外,我们还可以有效地保存不同方法产生的中间变量,而这些变量会对另一个模块的方法有用,解耦方法间的依赖。对于jQuery来说,它的事件克隆乃至后来的列队实现都是离不开缓存系统。jQuery1.2 在core模块新增了两个静态方法, data与removeData。data不用说,与jQuery其 阅读全文

posted @ 2012-11-19 07:58 司徒正美 阅读(10609) 评论(25) 推荐(22) 编辑

2012年11月13日 #

jquery1.83 之前所有与异步列队相关的模块的演变回顾

摘要: jQuery在1.5引入了Deferred对象(异步列队),当时它还没有划分为一个模块,放到核心模块中。直到1.52才分割出来。它拥有三个方法:_Deferred, Deferred与when。出于变量在不同作用域的共用,jQuery实现异步列队时不使用面向对象方式,它把_Deferred当作一个工厂方法,返回一个不透明的函数列队。之所以说不透明,是因为它的状态与元素都以闭包手段保护起来,只能通过列队对象提供的方法进行操作。这几个方法分别是done(添加函数),resolveWith(指定作用域地执行所有函数),resolve(执行所有函数),isResolved(判定是否已经调用过resol 阅读全文

posted @ 2012-11-13 08:47 司徒正美 阅读(3457) 评论(2) 推荐(3) 编辑

2012年11月12日 #

mass Framework fx模块 v4

摘要: mass Framework第四代动画引擎,支持CSS3的变形动画,全新的中央列队,与jQuery API完全兼容。//=========================================// 动画模块v4//==========================================define("fx", ["$css"],function(){ var types = { color:/color/i, scroll:/scroll/i, transform: /transform/i }, rfxnum ... 阅读全文

posted @ 2012-11-12 18:06 司徒正美 阅读(1056) 评论(0) 推荐(0) 编辑

2012年11月9日 #

被迫才是进步的原动力(转)

摘要: 简单回一下好了。关于职业的部分。我本来也是觉得就如同跟 @vgod 一样所说,在裡面可以全新锻炼和学习各种知识和技能。我在大学里面,就是抱着这样的心态,学习各种知识。我在大学裡面最认真修的课,不是数学(唯一感兴趣的是线性代数、离散数学、代数) ,而是….去修资科系基础理论的课,什么作业系统、计算机结构、演算法、资料结构、数位电路、etc…大概能修的我都修了。数学系最 重视的微积分、高等微积分,我没有很喜欢。而且,我大概下课的时间都泡在系上的机房,弄网路、伺服器、写写简单的网站。而最后我也是抱着这样的心态,选择了第一份工作。因为我觉得大学的环境才能让「自己有选择想练什么武功的自由」。 我希望一直 阅读全文

posted @ 2012-11-09 16:14 司徒正美 阅读(1888) 评论(4) 推荐(2) 编辑

2012年11月6日 #

JS判断鼠标从什么方向进入一个容器

摘要: 偶然将想到的一个如何判断鼠标从哪个方向进入一个容器的问题。首先想到的是给容器的四个边添加几个块,然后看鼠标进入的时候哪个块先监听到鼠标事件。不过这样麻烦太多了。google了一下找到了一个不错的解决方法,是基于jquery的,原文地址说实话,其中的var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;这句用到的数学知识我是真没有看明白,原文中有一些英文注释我就不一一说明了。代码部分不是很多,我直接写了个示例。 <!DOCTYPE html><html> 阅读全文

posted @ 2012-11-06 16:12 司徒正美 阅读(5770) 评论(7) 推荐(3) 编辑

上一页 1 ··· 43 44 45 46 47 48 49 50 51 ··· 125 下一页