命令模式是一种原理非常简单,但是使用起来非常优雅、方便的并且个人觉得很有艺术感的设计模式。一、介绍还是先来看一下《研磨设计模式》的定义——将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式的本质——封装请求。封装请求是什么意思呢...
分类:
其他好文 时间:
2014-05-08 12:29:34
阅读次数:
338
Struts 2的起源和背景Struts 2以WebWork优秀的设计思想为核心,吸收了Struts
1的部分优点,建立了一个兼容WebWork和Struts 1的MVC框架,Struts 2的目标是希望可以让原来使用Struts
1、WebWork的开发人员,都可以平稳过渡到使用Struts 2框...
分类:
其他好文 时间:
2014-05-08 11:22:06
阅读次数:
392
1.shell程序格式 #! /bin/bash 首行#!指定shell编译器 # program
除首行的#外,其他的都表示注释 # read var1 read var2 if[ $var1 -eq $var2 ] then echo "$var1 is
equal to $var2" elif...
分类:
其他好文 时间:
2014-05-08 10:36:56
阅读次数:
252
一丶margin:0
auto;试用最多的方法,简单实用。二丶vertical-align:middle;只适用于内嵌元素,比如说一个div中有一个图片和文字,要让图片和文字中线对齐。
关注前端,关注用户体验-冀 三丶position:relative;通过给...
分类:
Web程序 时间:
2014-05-08 10:28:41
阅读次数:
431
安装XDebug后自动开启PHP Stack Trace,导致服务器PHP
error日志暴满,甚至高达1G
分类:
Web程序 时间:
2014-05-08 00:43:36
阅读次数:
482
想使用python的logging模块记录日志,并使用RotatingFileHandler来处理日志以便于在日志文件超过指定的大小后会重新生成新的日志文件。
基本代码如下:
import logging
logger = logging.getLogger('mylogger')
logger.setLevel(logging.INFO)
fh=logging.handlers.Ro...
分类:
编程语言 时间:
2014-05-08 00:25:12
阅读次数:
457
defgetResult(cmd,timeout=2):#命令超时时间
deadline=time.time()+timeout
r=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
whiletime.time()<deadlineandr.poll()isNone:
time.sleep(0.1)
ifr.poll()isNone:#检查子进程
r.kill()
r.wait()
return‘‘
r.wait()
..
分类:
编程语言 时间:
2014-05-07 22:30:17
阅读次数:
504
首先,在从库上执行:showslavestatus\G,发现SQL显示:NO,并且报错删除日志子类的。解决方法:才从库上连续执行若干次如下命令即可解决:mysql>slavestop;mysql>SETGLOBALSQL_SLAVE_SKIP_COUNTER=1;#跳过一个事务mysql>slavestart;
分类:
其他好文 时间:
2014-05-07 22:27:15
阅读次数:
390
HTML5新添加了对历史的管理,更新了history对象让管理历史状态更加方便了。在现代Web应用中,用户可以通过”前进”和”后退”按钮进行历史页面的切换。这让一些不在新页面中打开的新页面前进后退自如,提高了用户体验。通过haschange事件,可以知道URL的参数什么时候发生了变化,也就是什么时候该有所反应。通过状态管理的API,能够在不加载新页面的情况下改变浏览器的URL。所以需要使用...
分类:
Web程序 时间:
2014-05-07 21:34:55
阅读次数:
496