垂直滚动条对居中布局的影响

典型的居中布局是让body的margin和padding为0,然后让内容(如<div id= content/>) 居中。 这种做法的问题是:页面元素在有垂直滚动条和无垂直滚动条时,相对于屏幕的位置不同。 比如你的屏宽是2000,内容宽度是1000; 无滚动条时,内容最左端相对于屏幕左端的偏移量就是500 ([2000-1000]/2) . 有滚动条时,由于滚动条本身要占一定宽度(比如说20),则新的偏移量将是 (2000-20-1000)/2 =490. 如果用户从一个无滚动条页面(比如数据很少的列表页面)切换到一个有滚动条的页面(数据很多的列表页面),就会感觉到明显的页面的扯动,用户体验很不好。 要解决这个问题,可以把居中布局改成按居左布局+固定偏移量,baidu的搜索页就是这样布局的。如果想继续用居中布局,有一种办法是强制全站总是出现垂直滚动条: html {overflow-y: scroll;} /*这是css3属性,有的浏览器可能不支持*/

angularjs研究

Angularjs使用MVC的好处 1.从设计的层面来看:原来富客户端程序需要用javascript操纵dom结构中的细微元素,需要知道dom结构的细节,造成Controller和View的强耦合:实现JS逻辑时需要确切地知道dom结构的细节,而且如果dom结构改了,js也要改。用angularjs没有这个问题,它只是把数据丢给View,View自己来编排数据。 2.从代码的层面来看:     a.C和V: html代码和javascript代码可以完全分离,没有任何缠绕。Javascript代码里不会操纵dom元素,dom的html代码里也不需要注册javascript钩子     b.V和M: 数据不再由javascript函数填充到dom中,而是在dom中使用与html友好的模板标签,直接获得数据。     c.你将要写的Javascript代码看起来都是完整的controller对象,完全由数据+方法组成,非常易读、易维护;而且代码以“类”为单位,可以形成良好的代码组织结构。 用户输入事件的处理模式 1. M/V直接联动,并且自动化:原有的模式为dom输入元素上的用户输入事件指定监听函数,事件发生时运行监听函数,在函数里操纵dom输出元素;新模式是为dom输入元素直接绑定Model, 输入事件立即造成Model的修改,绑定这个Model的输出元素也直接跟着变。整个过程不需要开发者写一行Javascript代码,框架(容器)帮你在幕后做好相关的事情。 2.非输入型事件: 注册一个controller函数<img ng-src="{{img}}" ng-click="setImage(img)"> 。那angularjs是否包装了所有的JS事件模型?是比较全的,但对一些mobile事件还没有支持。 数据无关的原生JS操作如何支持 1.如何实现javascript的强交互效果,比如弹出框、tab等等?  答:可以在controller里的function直接调用alert() 2.Javascript现有的一些非domAPI,比如从请求中获得参数、读取cookie是否还支持? 答:支持的,都有相应的service可以注入 组件化能力 1. 可以用directive命令来生成标签 2. 多个组件可以放在同一张页面里用,而且不会生成iframe; 但是经研究,js、css文件重复、元素命名冲突问题并没有得到解决;如果两个组件都是<html>级的,则很容易出错

在maven命令行中为插件指定参数

1. 找开插件源码,找到参数的expression. 例如: 引用     /**      * User properties file.      *      * @parameter expression=" ${autoconfig.userProperties}"      */     private File userProperties; 2. 执行时把这个expression作为system property加上去。 引用 mvn install -Dautoconfig.userProperties=/home/kent/myproject/antx.properties

mysql创建用户并分配到某个数据库上

create user ‘kent’@’%’ identified by ‘kentpassword’; create user ‘kent’@’localhost’ identified by ‘kentpassword’; grant all privileges on kentdb.* to ‘kent’@’%’ with grant option; grant all privileges on kentdb.* to ‘kent’@’localhost’ with grant option;

无线开发使用长连接的目的

PC用长连接可以减少频繁建立连接的时间,提高响应速度。 但我们在PC上平时用短连接访问网站时,性能上也完全能接受;手机用短连接访问网站,照样也能接受吧? 是的。 但无线开发用长连接不仅仅是为了提高响应速度,更多地是为了节省流量、省电。使用长连接可以减少很多网络传输。

长连接要尽量维持

既然服务端跟客户端使用了长连接通信,就要尽量维持这个长连接,因为建立连接比较慢;服务端一般会用数据库、缓存什么的来维护长连接,所以重建连接对服务端的开销也有影响。 IOS应用被挪到后台时,服务端不应该再发数据,因为即使发了应用也不会处理;那怎么告诉服务端说不能再发数据了? 粗暴的作法是IOS应用进入后台时立即关断长连接。 但这种做法在一种情况下不利:应用进入后台后可能又会很快被用户切回前台,这时又得重建长连接,用户体验会很差。 合适的作法是应用进入后台时发个报文给服务端,让它暂停发送;恢复到前台时再发个报文,让服务端恢复发送。