jQuery、Ext、KISSY三者类库键盘输入体验分析

【菜科解读】
由于顶级对象是使用类库几乎所有功能的入口,在编码中会频繁地输入这几个字符,因此在设计类库时,顶级对象名输入的简便性也是相当重要的。
在此将从对象名称的长度、输入对象名称的按键顺序这两个方面对三个类库进行重点比较,同时力求照顾到一些特别的点,从而得出一个较为全面的评测结果。
名称长度jQuery共有6个字符组成,从长度上而言是三个类库中最长的一个,同时包含了一个大写字母Q,在输入过程中需要加入一次SHIFT键,因此长度值给定为7。
Ext共有3个字符组成,在长度上是最有优势的,由于首字母为大写字母E,输入过程中需要有一次SHIFT,因此长度值给定为4。
KISSY由5个字符组成,均为大写字母,长度上而言接近jQuery,同时需要一次SHIFT键的长按,因此给定长度值6。
在名称长度的对比上,最受欢迎的jQuery以微弱的劣势惜败,但jQuery使用了其他的方式在这方面给予了改进,将在后文中提及。
按键顺序按键顺序的分析比较复杂,这里涉及的原则主要有以下几点尽可能地交叉使用左右手输入每一个字符。
尽可能避免同一手指连续使用。
尽可能地减少长按某个按键的时间。
食指和中指较为灵活,因此尽可能避免使用小指和无名指。
较为接近的两个手指容易出现联动的现象,即当小指移动时,无名指也会反射性进行微幅度的移动,这可能影响到下一次按键,因此尽可能避免并列的手指连动。
在评测中,将双手从左手小指至右手小指,依次编号为0-9,从数字上观察将会发现一些有趣的现象。
jQuery的按键顺序依次是606236,在输入的过程中有一次使用了较不灵活的左手小指。
在上一条的基础上补充,事实上在按Q的时候需要用左手小指按住SHIFT键,因此Q其实是交给原本不负责Q键的左手无名指。
在输入大写Q时左手小指和无名指有连动的现象,而且不是顺序连动,而是同时敲击。
e和r由左手中指和食指连续敲击,可能出现并列的手指连动的影响。
但是在实际输入过程中,笔者发现食指和中指的连动不但没有效率上的影响,反而对速度有促进作用,反思该过程,发现中指和食指连续敲击桌面是笔者在思考时经常做的动作,因此形成了一种极为高效熟练的反射运动…… Ext的按键顺序依次是213,输入过程中发现有以下问题所有按键来自左手,右手完全空闲,无法达到理论的最高输入速度。
但是由于在输入Ext的过程中,右手可以同时去定位.这个按键,因此对于整行语句的输入影响并不是很大。
输入大写的E时,左手小指需要按住SHIFT键,而紧接着输入x时,左手无名指按下的前瞬间要求小指放开SHIFT键,由于这两个手指很容易出现联动的反映,因此对左手按x键的定位精准性有着较大的影响。
KISSY的按键顺序依次是77116,这大概是几个类库中最糟糕的键位顺序了出现右手中指、左手无名指连续按键现象,右手中指甚至需要在按2个键位的过程中进行移动,严重影响输入速度。
在速个输入过程中,左手小指需要长按SHIFT键,小指是所有手指中最没有力量的,长按非字母的远位键会对小指造成极大的压力,长期输入小指关节会变得僵硬,这已经可以上升到开发人员健康的高度了…… 在小指长按SHIFT的过程中,有连续2次左手无名指的输入,原本无名指和小指就容易出现联动反映,因此在无名指不断对同一个点(S键)加力、卸力的过程中,小指会跟着无名指出现力量增强、减弱的现象,最坏情况将导致SHIFT键被松开。
这种力量的突发性增强和减弱对手指关节也有着不可忽视的伤害,因此在输入KISSY这几个字符的过程中,我们左手的小指是伟大的,他顶住了千千万万的压力,最终光荣地完成了任务! 其他jQuery通过使用别名$,将原本较为复杂的对象名变成了一个简单的字符,同时也不忘本地提供了noConflict函数用于释放$变量,这一点上想得非常周全。
Ext由于对象组织的原因,调用一个函数通常需要输入更多的路径,例好jQuery(selector)在Ext中将变成Ext.Element.query(selector),在这一点上,Ext已经将部分常用的函数推到了Ext对象之下,如Ext.Element.fly变为Ext.fly,Ext.DomQuery.select变为Ext.query等,但就总体的代码量而言,相比jQuery是有劣势的。
KISSY兼具了Ext的模块化结构组织,同时也引入了Ext的函数访问路径过长的问题,由于Javascript中的with语句存在这样那样的问题,而使用别名代替层级较深的对象也会有这样那样的问题,因此此类问题并不容易规避。
为什么不分析YUI?因为曾经习惯Ext,后期jQuery用得多,KISSY是在笔者进入前端这个领域之后兴起的关注也较多,YUI从头到尾没有接触是笔者的一大遗憾,同时也让笔者失去了在本文中评测该框架的权利。
总结我们将通过以下的方式给各个类库打个分长度得分为10-长度值。
按键顺序满分为10,每出现一个问题扣去1分,出现特别严重的问题扣去2分。
最终结果见下表名称长度 按键顺序 备注 jQuery 3 6 Ext 6 7 访问函数路径过长扣1分 KISSY 4 3 几个问题比较严重多扣4分 最后声明:笔者绝对没有黑KISSY的意思,反之对KISSY的设计、模块分隔、实现等有着深厚的兴趣,只是此文仅从顶层对象名称的输入体验上进行评测,在这一点上KISSY确实选择了一个糟糕的名字。
jQuery,、,Ext,KISSY,三者,类库,键盘,输入
修改国外主机的PHP、MySQL时区设置以实现国外主机时间与国内同步
2、PHP的时间和MySQL的时间不是相同的。
所以,我们所要做的事情就是:1、把美国时间改成中国时间。
2、并且要把PHP的时间和MySQL的时间统一。
一、修改MySQL时间如果你在写程序的时候,习惯了用类或者函数,那么恭喜你,这一步你同样只需要一次复制粘贴操作就能将它解决。
如果你在写程序的从来不用类或者函数,那么我会祈祷耶稣和释迦牟尼一同保佑你,不会在改程序的时候累得很惨,同时希望你改掉这个不好的编程习惯。
那么,就请在PHP程序有数据库连接的下一语句(只有1次,就加1句;若有无数次,就加无数次……这个编程习惯,还是重要啊)加入如下代码:复制内容到剪贴板代码:mysql_query("SET time_zone = ‘+8:00‘") or die(‘时区设置失败,请联系管理员!‘);再去SELECT NOW();下,你会惊喜地发现,MySQL也是中国时间了。
为什么是+8:00呢?前面我说过了,中国时间和美国时间差8小时,往那个那个貌似向东还是向西的方向来着?(不好意思我是路盲,我在怪地球是圆的)。
OK,现在MySQL的时间也搞定了,我相信现在就会有比较严谨朋友问了:那你如何证明PHP的时间和MySQL的时间是同步呢?啊……这个人与人之间的信任,还是重要的,就像汇款,哈哈,那我们来做个测试吧:复制内容到剪贴板代码://这里是页面的开头,用于改PHP时间的代码。
date_default_timezone_set(‘PRC‘) or die(‘时区设置失败,请联系管理员!‘);//-------------------------------------------------------------//// 这里写数据库连接的代码,别懒,自己写。
////-------------------------------------------------------------//数据库一旦连接,紧跟着就是改MySQL时间的代码。
mysql_query("SET time_zone = ‘+8:00‘") or die(‘时区设置失败,请联系管理员!‘);//显示PHP的时间echo date(‘Y-m-d H:i:s‘);echo //显示MySQL的时间$mysql_time = mysql_query("SELECT NOW()");$mysql_rows = mysql_fetch_row($mysql_time);echo $mysql_rows[0];二、修改PHP时间听上去有点小复杂,其实很简单。
首先我们来改PHP的时间,将这句代码插入到PHP程序中,公共调用页的顶部(也就是要include_once,require_once到的脚本里,当然你不用_once我也没有意见),确保需要用到时间的页面都必须调用到:复制内容到剪贴板代码:date_default_timezone_set(‘PRC‘) or die(‘时区设置失败,请联系管理员!‘);现在测试下:复制内容到剪贴板代码:echo date(‘Y-m-d H:i:s‘);怎么样?哇哈哈,正确显示中国时间了,当然你要说北京时间我也没意见。
至于那个参数PRC是什么意思,我记得是某个神奇的土地之缩写,不用管它,照搬就行了,错不了的。
成功了?NO,不要得意得太早,在MySQL里输入语句SELECT NOW();你会惊愕的发现,MySQL的时间还是美国时间。
不急,我们返回到上一步,已经设置好了。
修改,国外,主机,的,PHP,、,MySQL,时区,设置,以
用Jquery轮转Asp.net中AdRotator图片
1、新建网站新建一个网站或者在已有的网站中做添加以下文件和文件夹新增四张图片和Ad.xml文件,供AdRotator控件调用。
2、完善Ad.xml文件撰写广告XML代码,如下图所示: ?xml version="1.0" encoding="utf-8" ?> 001.jpg ywqu.cnblogs.com 灵动生活 30 森森购物 002.jpg ywqu.cnblogs.com 灵动生活 30 森森购物 003.jpg ywqu.cnblogs.com 灵动生活 30 森森购物 004.jpg ywqu.cnblogs.com 灵动生活 30 森森购物 3、添加AdRotator控件向页面AdRotatorDemo.aspx添加AdRotator控件,代码如下: 分析: AdvertisementFile:引用广告XML文件 KeywordFilter:通过此属性过滤广告,对应XML文件中的keyword属性,这样不同的页面可以使用此属性过滤一些广告内容。
4、Jquery轮转图片使用jquery使AdRotator控件中的图片轮转起来,代码如下: 分析:在以上代码中我们使用了setInterval function,也调用了jQuery load() api,以达到每3秒钟更新一次数据。
引用:Load(function)在每一个匹配元素的load事件中绑定一个处理函数。
如果绑定给window对象,则会在所有内容加载后触发,包括窗口,框架,对象和图像。
如果绑定在元素上,则当元素的内容加载完毕后触发。
注意:只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。
如果之后再绑定就永远不会触发了。
所以不要在$(document).ready()里绑定load事件,因为jQuery会在所有DOM加载完成后再绑定load事件。
为了验证是否刷心页面,在页面上加了一个时间标志。
最终运行效果如下:有以上图可以知,整个页面并没有刷心。
可以自由地每隔3秒钟轮转一次。
用,Jquery,轮转,Asp.net,中,AdRotato 上一篇:Discuz!X1.5设置会员不能某版块发贴 下一篇: