如果有一种方法可以让你写一次代码,在网站,手机网站,浏览器插件,iPhone软件,Android软件,客户端,各种App上都可以使用,你会不会心动?
如果有一种方法可以让你写一次代码,在网站,手机网站,浏览器插件,iPhone软件,Android软件,客户端,各种App上都可以使用,你会不会心动?
Closure Compiler压缩还是蛮不错的,可惜不爽的是,它居然不支持对文件夹进行压缩,如果你的js有多级目录,并且有数十个以上的js的话,那就够得上你喝一壶了。我也正遇到这个问题,于是想到了古老的命令——dos,经过一天的疯狂google,结果终于修炼成此快速批量极品递归无所不能万寿无疆精品概念创意批处理文件,欢迎下载测试使用,不过先得读一下说明….
…
JS的压缩有两个层次,第一个层次是去掉注释,换行,空格,这样所减小的体积根据你的注释多少有关,基本上不能叫压缩。第二个层次要高级一些,那就是利用工具将JS进行混淆,混淆是一种扫描源代码的过程,这个过程会把字段和函数本来的名字修改为经过编码的、毫无意义的名字,以此来防止他人了解源代码的目的和内部结构。其实我更关注它的压缩功能,因为混淆会把函数和变量的名称改成短名称,还可以进行base64编码,所以混淆后的代码一般可以是原来代码的 1/3左右,甚至更少。我们拿大名鼎鼎的jQuery 1.3.2举例,没有经过任何处理包含注释的情况下,jQuery是122k,经过去注释空格的处理后是50多k,经过压缩后是24k,而再又经过 gzip压缩之后,就变成19k,从122k到19k,差别就是这么大,当然其中一个比较重要的原因,是因为jquery中包含大量的注释。
…
谈谈JS压缩的代码编写民需要注意哪些问题
在ie6以上的浏览器和firefox等浏览器上,jqury.autocomplete运行良好,可是到了ie6下,如果你碰巧又在使用jqury.autocomplete的控件下面放了一个下拉框(select元素),那么你将会看到一个很让人郁闷的问题,这是一个经典的问题。我们来看这个图:

本篇就是要解决这个问题的,来看修改后的结果:

好久不写博客了,今天发布一个插件,这个插件是基于jQuery的插件,主要功能是轮流显示一系列的灯箱广告,该插件具有使用简单,体积小的特点(仅4k左右),界面截图如下:

如果要让你把1344|1479|1471,转换为<a href=”http://conis.cn/1344″>1344</a><a href=”http://conis.cn/1479″>1479</a><a href=”http://conis.cn/1471″>1471</a>,你会使用什么方式呢?十之八九,你会想用slipt,可是如果我告诉你,有一种方式,可以使用一行的代码解决这个问题,你相信么?快来吧,和我一起感受正则表达式的魅力
jquery.autocomeplete是一款基于jQuery的插件,它可以让用户输入的时候,实时搜索自动完成,这种技术目前在很多的网站都有使用,让这项技术普及的,应该是Google的Suggest吧。
现在,我们希望可以在弹出的搜索建议中,添加一些提示功能,就像这样:

让我们一起来修改这个插件吧….
如果让你从博尔塔拉蒙古自治州/绍兴市/津市市/海西蒙古族藏族自治州/黔南布依族苗族自治州这类城市数据中,提取出来城市名:博尔塔拉/绍兴/津市/海西黔南,你想怎么做,用Replace么?呵呵,好像解决了不问题,何不试试正则?Follow me!
发布一系列javascript的日期扩展函数,其实也是自己在写程序中累积下来的,包括日期相加、日期相减、(日期转字符)根据表达式格式化日期为字符、根据表达式格式化字符为日期(字符转日期)、直接从字符中提取日期,不需要任何表达式
让我们来看Javascript + CSS + html + XML的应用广度,下面简称为JCHX
1. Firefox的扩展,也就是我们平常称之为插件,是基于JCHX的
2. Adobe Air跨平台采用Flex、Flash或者JCHX作为开发语言,这是一个跨平台的应用,可以把你的网站搬到客户端
3. Ophone的Widget,我虽然还没有做过具体的开发,但我看过相关的资料,也是JCHX,这是一个非常有发展前途的应用,将简化程序的开发,让更多漂亮的应用程序可以运行在手机桌面上
4. Yahoo Widget
5. Vista/Windows 7 Widget
心血来潮想玩微博,发现好用的微博被和谐了,只好使用taotao了,taotao有一个未公开的API,自己写了点代码,把taotao的微博读取我的博客上,顺便提供些代码下载,还不是错的,呵呵。
开源喽开源喽,我准备把一些软件开源,再把写的一些js代码放出来,嘿嘿,大家可以一起学习进步,不能总是固步自封撒。
如果在javascript中,可以将2009y10M15d转换日期格式,而不需要表达式,是不是很酷?还有更酷的呢,可以把10秒5分4时2008年3d9M转换为合法的日期格式,跟我来吧,有你想要的
javascript可以进行日期扩展吗?能否有dateAdd、dateDiff这样的函数呢,能否使用+3d、-5M这样的日期表达式来处理日期呢?当然可以,试试正则表达式吧,wow, so cool, let’s go!
Adobe推出AIR,如何推广将是一个大问题,因为Adobe没有像MS一样的Windows操作系统资源,现在用户都不太想安装客户端程序,所以 AIR推广将会非常麻烦。但如果Adobe将AIR集成到Flash Player新版本中,让用户升级Flash Player的过程中,就不知不觉地安装了AIR,这样的推广将会容易得多。但Adobe是不是应该将Flash Player和AIR做得更小?Adobe会这么做么?让我们拭目以待吧
实现了将字符串转换为日期的功能,例如“10月18日2008年 10点11分12秒”,根据表达式“MM月dd日yyyy年 hh点mm分ss秒”,就可以转换为合法的日期格式了
jquery是一个好东西,多好我就不说了,反正我很很很喜欢。最近需要用到mask的功能,在网上找到了一个inputmask的扩展,这个扩展蛮不错,但有一点不好,我希望实现如时间的mask功能,只允许用户输入24:59以下的。又或者我希望实现输入日期yyyy-MM-dd这样的式,inputmask就无能为力了。
开源的东西就是好,你可以自由地去修改它们,如果是microsoft的东东,恐怕你就只有等待ms的补丁了。查看了inputmask的源码,代码很简单,我只修改了两个地方。第一个就是在配置参数setting中增加一个pattern的参数作为扩展,如果用户配置了这个参数,当onblur的时候,会校验这个用户提供的正则。
javascript 的编码能力比较弱,但并不代码它不能做,只不过,需要你花一点功夫,前段时间在做日历的时候,需要从textbox读取日期,问题的关键是textbox 的日期可能是美国标准,可能是中国标准等等,没有办法将之转成日期格式,也就不能将日期在日历中定位到当天。在csdn上问了一个问题,结果没有人答得合适,我一怒之下,自儿写了一个,还行,能用。
说说需求吧,基本上很简单,就是能识别yyyymmdd及yymd这样的日期格式,或者yy、yyyy、M、MM、d、dd的任意组合。如yyyy年MM月dd日,匹配2009年06月10日。
和所有程序员一样,我也一直在学习,学习更深层次的技术,学习软件开发的方法,学习软件项目管理。在学习设计模式的过程中,找了不少书,但我在学习这些书本的时候发现了一个很头疼的问题,这些书本都很生涩,非常之抽象,从模式的定义到模式的意图,再到模式的类图等等,非常多的笔墨来描述他们。可是,当讲到实际应用的时候,却是戛然而止,仿佛有若蜻蜓点水。
我想大师们和我不一样,他们站在一个抽象的高度,所以他们只讲抽象、理论、要领、原则。然而,软件界要培养大师级的人物毕竟是小数,大多数人和我一样,是一个实践者,况且,每一个大师都是菜鸟进化而来的。千里之行,始于足下,九层高台,起于垒土。
一直想把设计模式这个东西放在实际的案例中,然后写出来,这样我觉得更加平易近人,程序员都喜欢看代码。但实际上有很多制约未能成行,一方面是自身的水平问题,另一方面是一时间难以找到这么多合适的案例出来。
刚好凑巧,最近需要用到JSON,设计模式中的组合模式正好可以应用,完成代码之后就想把自己的想法写出来,也希望多多少少能帮到正在学习设计模式的人,也算是这个系列的一个起点吧,我希望以后还有更多的时间与机会来写其它的设计模式。
如果您正在看这篇文章,表示您正在学习,虽然本文附有代码,但我想您最好亲自去写一下这些代码。毕竟“纸上来得终觉浅,绝知此事要躬行”,多写多问多看总是有好处的。
坦白讲,我的技术非常有限,在这篇文章中一定会存在着许多谬误,欢迎大家拍砖。
我希望和更多的人一起交流,当然不仅仅是局限于技术,所以公开我的联系方式,但由于时间关系,我不一定能有问必答,希望能得到您的原谅。
最近项目需要使用TreeView,客户说点击一下刷屏很不爽,查了查TreeView,发现MS居然不提供客户端响应事件的功能,也就说一定要使用服务器端响应事件,这个白痴的MS,很多时候TreeView是不需要服务器响应的,居然把什么都做到服务器中去,想考验服务器的水平啊。
先是到网上找了一大堆资料,结果发现都不能解决问题,过程就不说了,结果才是别人的,过程就留给自己吧。最后还是自己想办法,基本的思路是从客户端相办法。在客户端用javascript把树的节点链接中的onclick及href给替换掉,有了这个思路就好解决了。
……
这里的ClickNode就是客户端的JS代码了,你可以以任何的代码替代。实际上原理很简单:
通过TreeView的客户端ID,获取该容器下的所有链接
循环屏蔽节点的链接A的事件(onclick)及href
在链接的文本(最终输出中间的内容)加入Text
最新评论