- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 javascript享元模式和对象池技术
javascript享元模式享元模式:运用共享技术来有效支持大量细粒度的对象 内部状态:被一些对象共享,独立于具体场景,通常不变 外部状态:取决于具体的场景,并根据场景而变化文件上传的假设例子var id = 0;window.startUpload = function (uploadType, files) { //uploadType区分是控件还是flash for(var
2016-08-18 11:16:51 3226
原创 javascript模版模式
javascript模版模式模版模式:利用父类定义一些类似对象的公共方法和操作框架简单例子var Beverage = function () {};Beverage.prototype.boilWater = function () { console.log('把水煮沸');};Beverage.prototype.brew = function () { //
2016-08-17 17:25:47 475
原创 javascript组合模式
javascript组合模式组合命令<script> var MacroCommand = function () { return { commandList: [], add: function (command) { this.commandList.push(command);
2016-08-17 16:27:40 459
原创 javascript命令模式
javascript命令模式传统面向对象语言中的命令模式<body> <button id="button1">点击按钮1</button> <button id="button2">点击按钮2</button> <button id="button3">点击按钮3</button></body><script> var button1 = document.ge
2016-08-17 15:19:08 400
原创 javascript观察者模式
javascript观察者模式观察者模式:当一个对象的状态发生改变,所有依赖于它的对象都将得到通知通用发布订阅var event = { clientList:[], listen: function (key, fn) { if(!this.clientList[key]){ this.clientList[key] = [];
2016-08-17 11:00:26 1025
原创 javascript迭代器
javascript迭代器迭代器:提供一种顺序访问聚合对象各个元素方法,并不暴露该对象jQuery迭代器$.each([1, 2, 3, 4], function (i, n) { console.log(i +'---'+ n);})自定义迭代器var each = function (ary, callback) { for (var i = 0, l = ary.lengt
2016-08-16 17:04:22 433
原创 javascript代理模式
javascript代理模式代理模式:为一个对象提供一个替代品或占位符,以便控制对它的访问var Flower = function () { this.name = "玫瑰";};var xiaoming = { senfFlower: function (target) { var flower = new Flower(); target.re
2016-08-16 16:05:49 424
原创 javascript单例
javascript单例单例模式是指,一个类仅有一个实例,并提供一个访问它的全局访问点。一般单例写法var Singleton = function (name) { this.name = name; this.instance = null;};Singleton.prototype.getName= function(){ console.log(this.name)
2016-08-16 11:32:00 401
原创 javascript闭包
javascript闭包闭包生存周期<body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div></body><script> var nodes = document.getElementsByTagName('div'); for (var i=0, l =
2016-08-15 15:59:06 327
原创 javascript中this指向问题
javascript中this指向问题在对象方法中调用在对象方法中this就是指该对象var obj = { name: 'xin', getName: function () { return this.name; }};console.log(obj.getName()); //xin作为普通函数调用作为普通函数调用时指向全局对象,被全局对象
2016-08-15 13:58:55 572
原创 javascript多态、封装和原型链
javascript多态、封装和原型链这些内容将是初级javascript coder迈向初高级的必由之路。多态多态指:同一操作作用在不同的对象上,可以产生不同的解释和不同的类。 var googleMap = { show: function () { console.log("展示谷歌地图"); }};var baiduMap = { show:
2016-08-15 11:17:58 526
原创 HTML5-地理位置接口
HTML5地理位置接口简单来说这个接口的使用就是两个函数getCurrentPosition(successCallback, errorCallback, options) 一次更新位置watchPosition(successCallback, errorCallback, options) 重复更新位置 两者的区别在于,前者一次性获得,而后者是一个函数监听,位置发生变化就会调用函数,并返
2016-08-09 16:15:46 558
原创 HTML5-音频和视频
音频和视频基本使用只有在浏览器使用video和audio就可以开始使用了<video src="video.webm" controls></video><audio src="audio.ogg" controls></audio>当浏览器不支持时可以在标签之间使用其他替代的媒体方案source使用source可以指定多个资源,但是video和audio都不支持跨域<audio control
2016-08-09 15:58:05 512
原创 HTML5-Canvas
Canvas绘图绘制线段HTML结构<canvas id="diagonal" width="400px" height="400px"> 您的浏览器不支持!</canvas>
2016-08-08 16:48:28 567
原创 jquery操作属性
attr(name|pro|key,val|fn)设置或返回被选元素的属性值$("img").attr({ src: "test.jpg", alt: "Test Image" });$("img").attr("title", function() { return this.src });emoveAttr(name)每一个匹配的元素中删除属性$("img").removeAttr("src
2016-08-04 17:00:47 538
原创 jquery-Ajax
$.ajax().ajax(url[,setting])该方法一般不会使用到,有大量的可以设置的参数[.ajax(url[, setting]) 该方法一般不会使用到,有大量的可以设置的参数[.ajax的参数](http://jquery.cuishifeng.cn/jQuery.Ajax.html) $.ajax({ type: "POST", url: "som
2016-08-04 16:41:47 283
原创 jquery选择器
parent > child 父元素下的子元素,不包括孙元素prev + next 紧接在prev元素后的next元素:first 第一个元素:last() 最后一个:not 除了某元素:even 偶数:odd 奇数:eq 从零开始的第几个:gt() 比从零开始的索引值大的:lt() 小:header h1~h6:animated 怎在执行的动画:focus 获得焦点的元素
2016-08-04 16:40:40 224
原创 文章标题
git常用命令速览git init 创建git仓库git add file添加到暂存区git commit -m 'DESC' 提交到版本库git diff 查看修改内容git log 显示最近的commit日志git log --pretty=oneline 以简略形式显示日志git reset --hard HEAD^ 回到上一版本git reset --hard 4375984
2016-08-04 10:39:20 184
原创 javascript中原型链理解
javascript对象问题原型链问题var obj= {name: 'seven'};var A = function(){};A.prototype = obj;var a = new A();console.log(a.__proto__ === A.prototype);console.log(a.name);以上代码的对象指向问题: 当对象继承查找发生时,新对象隐藏的属性p
2016-08-03 15:14:16 317
原创 PHP-curl
curl步骤初始化cURL(curl_init())向服务器发送请求接受服务器数据(curl_exec())关闭cURL(curl_close())网页爬虫$curl = curl_init("http://www.runoob.com");$result = curl_exec($curl);echo $result;curl_close($curl)使用参数配置$curl =
2016-08-03 15:08:37 315
原创 24.php中使用Iterator,ArrayAccess和Countable
迭代器往往被我们用来在数据库中读取大量的数据时方便数据的管理。<?phpclass Basket implements Iterator{ private $fruits = array('apple', 'banna', 'pear', 'orange', 'watermelon'); private $position = 0; //返回当前的元素
2016-02-28 20:14:04 820
原创 23.php使用注册表
全局变量是能被任意位置修改的,同时常量又不够灵活。我们通常借用单例模式创建单例来保存数据这就是注册表。注册表即可以保存对象也能保存键值对。 保存对象<?phpfinal class Registry{ //保存自身 private static $instance=NULL; //保存请求 private $Request; priv
2016-02-22 21:24:39 617
原创 21.php命名空间
命名空间是对工程和类管理的一种替代解决方式,本质上是是语言设计缺陷大规避,目的是为了工程的方便管理和防止同名类的加载。 我们不使用命名空间,并引入另外一个文件,我创建了三个文件待用,main.php,lib1.php,lib2.php<?php/* * filename ./main.php * * *//* namespace main; */require_o
2016-02-20 12:08:44 276
原创 20.php回调、匿名函数、和闭包操作
现在的php是即支持面向对象的语言由支持面向过程的语言,在开发过程中我们往往会混合使用,回调会让我们容易将两种编码方式做整合,做到优秀的插拔。而闭包操作和回调都是建立在匿名函数基础之上的。<?php/* 简单的用于实验的类 */class Product{ public $name; public $price; function __construct
2016-02-19 22:35:38 1446
原创 19.php延迟绑定,使用static创建对象
去年就在《深入PHP面向对象、模式与实践》中看到了这样的一种用法,今天才拿出来仔细分析。 如果我们懒得思考会这么写:<?phpabstract class DomainObject{ }class User extends DomainObject{ public static function create(){ return new Use
2016-02-19 18:01:27 630
原创 5.less常见使用
less和sass就是使用其他工具将某种格式的文本重新编译成css文件,好处在于方便工程管理、避免写大量的重复内容和利于维护。我们常常使用的方式是:写好less后在本地编译后使用编译后的css文件,虽然sass和less能做到请求时进行编译,但是会带来额外的开销,所以我们一般会本地进行编译,以下内容能让你在两个小时内迅速掌握less的使用。 设置less的字符编码方式@charset
2016-02-17 17:11:13 430
原创 18.php访问者模式
本文参看php 设计模式 之 访问者模式.<?php//定义元素接口abstract class User{ public function getPoint() { return rand(); //该数据应该由数据库中读取,这里就直接模拟某个值了 } //这里的accept方法用于把访问者引入,在这个方法里,($visitor)访问
2016-01-22 11:12:20 248
原创 17.php模版模式
直接上代码。<?phpabstract class sale{ public $price = 0; public final function setprice(){ $this->price += $this->Tax(); $this->price -= $this->sale(); } //税务
2016-01-22 10:39:34 223
原创 16.php代理模式
对原对象进行继承并重写要被改变的模块,这就是代理模式。<?phpclass CD{ protected $name; protected $price; protected $num; function __construct($name, $price, $num){ $this->name = $name; $th
2016-01-22 09:52:21 241
原创 15.php原型模式
有时候对象要修改某些部分属性成为新的对象的组成部分,我们借用对原型的克隆创建新的对象。<?phpclass Fish{ protected $name; protected $age; protected $weight; protected $message="还是一条活鱼"; function __construct($name, $ag
2016-01-21 22:58:28 323
原创 14.中介者模式
电商项目中我们可能遇到这样的问题:要对不同的商品修改价格,但是商品是有巨大的差别的,这个时候就适合使用中介者模式。<?phpclass Book{ private $name; private $obj=NULL; public $price; function __construct($name, $price, Intermediar $obj)
2016-01-21 22:42:51 253
原创 13.php解释器模式
当遇到不良言论的筛选,往往需要该设计模式。分为三部分,数据的提供源,数据的替换处理,调用的控制部分。<?php/* * 要被翻译数据的源 * */class User{ public $user; public $saymessage; function __construct($user){ $this->user = $user
2016-01-20 21:15:33 219
原创 12.php外观模式
构建中间层次,当数据要进行转化保存为其他形式,使用静态方法并创建客户端统一调用。<?php/* * 对象中保存了自己的信息,但有不同的格式 * */class Book{ public $name; public $author; public $message = array(); function __construct($name, $author,
2016-01-20 19:05:51 231
原创 11.php建造者模式
面对批量的属性赋值创建对象适合使用建造者模式。<?php/* * 被创建的类 * */class CD { protected $_type = ""; protected $_size = ""; protected $_color = ""; public function setType($type){ $this->_typ
2016-01-20 16:48:14 311
原创 10.php桥接模式
当遇到多种不同的处理组合时,为防止对象的爆炸而使用的设计模式。由一个类别对象做最后的发送,而其他类别做各种数据的处理。<?phpabstract class Info{ //创建的对象用于保存发送对象 public $obj; function __construct(Type $obj){ $this->obj = $obj;
2016-01-20 16:07:15 260
原创 9.php适配器模式
所谓适配器就是在数据格式不匹配的情况下,对数据格式进行调整用在不同的条件下。<?php/* * 仅仅将错误消息返回 * * */class ErrorObject{ public $errorMessage; function __construct($errorMessage){ $this->errorMessage = $erro
2016-01-20 15:02:20 196
原创 21.linux文件的查找
locate 非实时查找全系统的文件,依靠一个数据库,非精确的查找[root@localhost bin]# locate passwd/etc/passwd/etc/passwd-/etc/passwd.OLD/etc/pam.d/passwd/etc/security/opasswd/lib/security/pam_passwdqc.so/lib/security/pam_
2016-01-16 23:19:39 274
原创 1.服务器上安装更新的python和代码提示(ipython)的安装
linux mint17.x和linux kali2等linux发行版本python版本已经都大家都在使用的2.7.6以上,但是面对我们的服务器centos5~6和redhat5~6往往python还是python2.6,但是当前服务器上众多软件都依赖于自带的python,这就需要我们在不卸载原有python的状况下使用新的版本。目前我们有两种方法,一种使用pyenv进行环境切换,一种使用源码包编
2016-01-16 20:20:32 942
原创 4.动画加载效果
这个简单的动画加载是由中间向两边扩展的效果,比较简单。这部分内容是参看的W3CPLUS上的文章。 小志博客- 小志的照片- 《css那些事》- 添翼地带- linxz's lab- CSS小工具- >
2016-01-14 15:05:11 302
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人