随笔分类 -  学习笔记

JavaScript 输入自动完成插件
摘要:作为web开发的一员,应该都不陌生,信息处理时,很多时候需要根据用户的输入实时反馈查询结果供其选择,这给了用户很好的人机交互体验,在各大门户网站上已经被使用的很成熟了,最近项目中用到此功能,网上有很多插件和样例,但用起来发现都多多少少与项目的需求有所出入,故自己写了一个,分享一下,希望能给你带来帮助,插件效果图如下:原理这个插件主要用来方便用户在信息查询和处理时快捷、简单,其原理分析下:1. 信息处理需要前台和后台,前台有一个或者多个查询输入框(目前暂定为input标签)。2. 用户在这些输入框中输入查询关键字时,系统根据用户实时的输入给页面后台发送数据查询请求。3. 后台程序查询数据并排.. 阅读全文
posted @ 2013-11-19 15:47 Fish-Paul 阅读(3481) 评论(0) 推荐(0)
javascript 学习笔记之JQuery中的Deferred对象
摘要:Deffered是Jquery中的一个非常重要的对象,从1.5版本之后,Jquery中的ajax操作都基于Deffered进行了重构,这个对象的处理模式就像其他Javascript框中的Promise异步模式一样,它代表一个潜在的、长时间运行但不必返回完成操作的结果,与等待并阻塞浏览器进程直到完成操作相比,Deffered返回的是一个承诺异步执行结果的对象,这个承诺可以有返回值,也可以没有,浏览器被释放出来做其他事情,直到这个返回结果被使用到。Deffered的原理是给异步请求过程中状态的变化注册回调函数,实现链式调用,如对象的then函数;统一对这些回调函数的结果进行管理控制,以面对多个.. 阅读全文
posted @ 2013-11-14 15:44 Fish-Paul 阅读(630) 评论(0) 推荐(0)
JavaScript 学习笔记之线程异步模型
摘要:核心的javascript程序语言并没有包含任何的线程机制,客户端javascript程序也没有任何关于线程的定义,事件驱动模式下的javascript语言并不能实现同时执行,即不能同时执行两个及以上的事件处理程序,所有的处理过程都是同步进行的。javascript的这种线程模式在大型复杂的web应用中显得捉襟见肘,实际工作中,我们会不遗余力的寻找各种异步模型来弥补这一点,直到HTML5中web worker的出现才让javascript的多线程模型出现曙光,尽管这种技术并不是真正意义上实现多线程,下面就自己在工作中的摸索分享如下:javascript的线程模型 客户端js程序是类似单线... 阅读全文
posted @ 2013-11-05 09:35 Fish-Paul 阅读(1588) 评论(0) 推荐(0)
javascript 学习笔记之面向对象编程(二):继承&多态
摘要:~~接上篇~~上一篇实现了类的实现以及类成员变量和方法的定义,下面我们来了解下面向对象中两个最重要的特性:继承和多态。继承js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属性),同时可扩展自己的成员,下面介绍几种js中实现继承的方式:1. 对象模仿(冒充):通过动态改变this指针的指向,实现对父类成员的重复定义,如下: 1 //对象冒充 2 function ClassA(paramColor) { 3 this.color = paramColor; 4 this.sayColor = function() { 5 alert(thi... 阅读全文
posted @ 2013-11-01 21:39 Fish-Paul 阅读(1500) 评论(0) 推荐(1)
javascript 学习笔记之面向对象编程(一):类的实现
摘要:~~想是一回事,做是一回事,写出来又是一回事~~一直以来,从事C++更多的是VC++多一些,从面向过程到面向对象的转变,让我对OO的编程思想有些偏爱,将一个客观存在的规律抽象出来总是让人比较兴奋,通过抽象出类的关系,我们可以做更多的事,思路也更加清晰。javascript也是一样,虽然其被定为成一个解释性语言,但随着互联网应用越来越广泛,js的作用将显得举足轻重,各种js框架、插件也蓬勃的出现,各浏览器直面用户的交互也越来越依赖js了,js代码的封装和优化日益重要。 也谈js的OO编程,虽然网上有许多技术大牛已经分享了星光熠熠的博文,但是将自己的理解写出来总是一件让人快乐的事,也算是对自己学. 阅读全文
posted @ 2013-10-30 09:59 Fish-Paul 阅读(382) 评论(0) 推荐(0)
javascript 学习笔记之模块化编程
摘要:题外: 进行web开发3年多了,javascript(后称js)用的也比较多,但是大部分都局限于函数的层次,有些公共的js函数可重用性不好,造成了程序的大量冗余,可读性差(虽然一直保留着注释的习惯,但是最后发现注释远远不够),影响了页面的加载速度和性能。去年开始着手对既有前端脚本进行重构和优化,查阅了很多技术大牛分享的资料,也比较系统的阅读了一遍《javascript权威指南》,js模块化编程深深的吸引了我,它改变了我编写js脚本程序的方式,同时也让代码的可读性和可维护性进一步增强。下边就根据自己学习和实践过程中对js模块化编程的理解,分享一下我的经历,希望对您有所帮助: 大家都知道,js.. 阅读全文
posted @ 2013-10-29 15:22 Fish-Paul 阅读(922) 评论(0) 推荐(1)
web版扫雷小游戏(四)
摘要:~~~接上篇,游戏的主体框架完成了,接下来我们对游戏中存在的两个主要实体进行分析,一个是雷点类BombObject(节点对象),一个是节点对象对应的图片对象BombImgObject,根据第一篇的介绍,这两个类的对象配合棋盘类实现游戏过程,这里重新解释下这两个类的用处:一、雷点类(BombObject):一个承上启下的对象类别。1. 此类的对象集合(棋盘类中的ObjList数组)组成了游戏棋盘上的每一个节点,节点的类型有空节点(数值为0)、雷点(数值为-1)、非雷非空节点(数值为N,依据节点周围的雷点个数而定)。2. 每一个对象需要标记其在棋盘中的坐标位置(x、y),同时能够获取其周围8个方位 阅读全文
posted @ 2013-10-26 12:01 Fish-Paul 阅读(556) 评论(0) 推荐(0)
web版扫雷小游戏(三)
摘要:~~~接上篇,上篇介绍了游戏实现过程中第一个比较繁琐的地方,现在展现在玩家面前的是一个有血有肉的棋盘,从某种意义上说玩家已经可以开始游戏了,但是不够人性化,玩家只能一个一个节点的点开,然后判断,然后标记等等,程序暂不能人性化的辅助玩家将游戏进行下去,趣味性不够强,接下来就来完善这些辅助功能。二、空节点点击触发其周围所有空节点展开此过程主要是辅助玩家快速标记雷点,增强游戏趣味性,即当游戏进行中,玩家点击棋盘中某个未展开的节点M时,如果该节点是空节点(对应的数值为0),则展开该节点的同时,需要遍历其周围8个方向上的节点,如果某个方向上的节点也是空节点,则再以该点为中心重复上述过程,直到遍历完所有相 阅读全文
posted @ 2013-10-25 17:30 Fish-Paul 阅读(820) 评论(0) 推荐(0)
web版扫雷小游戏(二)
摘要:接上篇~~第一次写这种技术博客,发现把自己做的东西介绍出来还是一件脑力活,不是那么轻松啊,好吧,想到哪写到哪,流水记录之,待完成之后再根据大家的意见进行修改吧。游戏实现根据对扫雷游戏的体验和分析,游戏的实现过程有三个比较繁琐的地方:1. 棋盘布局及初始化,这个过程主要完成游戏棋盘的生成,布局雷点的位置并记录存储,根据雷点的位置及雷点与数值之间的对应关系,遍历雷点8个方向上的8个节点,查找这个8个节点各自周围的雷点数之和S,最终记录并存储节点的数值(S),完成棋盘上各非雷点的数值计算后,根据节点和图片对象的关系呈现用户界面给玩家。2. 玩家鼠标左键点击棋盘上某个节点之后,程序根据节点在棋盘上的坐 阅读全文
posted @ 2013-10-24 22:18 Fish-Paul 阅读(1389) 评论(0) 推荐(0)
web版扫雷小游戏(一)
摘要:作为一名程序猿,平时的爱好也不多,说起游戏,我不太喜欢大型的网游,因为太耗时间,偶尔玩玩经典的单机小游戏,比如windows下自带的游戏扫雷(秀一下,高级下最高纪录110s)。 现阶段正在致力于web前端,工作之余,突然想用javascript来实现一下这个小游戏,说做就做,才发现玩起来简单,做起来还是遇到蛮多困难的,这里想和大家分享一下游戏的实现过程,之前做过一年多的C++开发,对OO编程有一些理解和热爱,故实现过程借用OO的编程思想,顺便对一段时间以来偏爱的javascript模块化编程进行一个小结与反思:开发思路:游戏在趣味点主要在于通过雷(bomb)点周围的数字推算出雷点的位置并... 阅读全文
posted @ 2013-10-21 21:24 Fish-Paul 阅读(1508) 评论(0) 推荐(0)