博客园 :: 首页 :: 管理

公告

置顶随笔

摘要: JavaScript的动态效果最基本的是 动态改变大小,移动位置,改变透明度,改变颜色等等。
而其他一些比较炫的效果无非是对这些最基本效果的组合和运用。

现在网上已经有很多很不错的优秀Javascript库或者效果库,我们是否有必要再造轮子呢?
放眼望去,Yahoo UI, 基于Prototype的scriptaculous, Rico, JQuery, Dojo,还有很多很多。
这些库都带有很不错很优秀的动态效果。我们可以直接使用。
但是对于一些中小型项目来说,只是偶尔用到一两个特效,就没有必要引用整个框架,要知道
这些家伙体积都不小哦。 prototype.js 50K, scripttaculous的 effects.js也有40-50k. dojo,yui 则更大。

在大多数情况下我们需要一个小巧独立(300行代码以内),无侵入性的效果库。.即使有现有的轮子,
我们不但要学会怎么使用轮子,更要学会如何亲手造一个轮子。
基于以上原因,我们今天来重写一个灵活的,扩展性强的,小巧的,跨浏览阅读全文

posted @ 2007-01-15 20:32 Go_Rush 阅读(6700) 评论(16) 编辑

摘要: element.appendChild(newNode) 方法中,如果 newNode本身是Dom中的一个节点. 那么appendChild方法执行的不再
是append操作了,而是一个move操作. 利用这个特点,我们可以实现很多巧妙的Dom操作.

我们先来看看前段时间CSDN 三百多人参与讨论的 五行代码实现无缝文字滚动 的原代码,看看他是怎么利用 appendChild来滚动文字的....
再来讨论一下利用 appendChild来实现表格排序的技巧......阅读全文

posted @ 2006-11-30 03:42 Go_Rush 阅读(6388) 评论(37) 编辑

2007年6月1日

摘要: 用php写过一个,不过由于 php 不支持多线程,抓取和验证速度都非常的慢 (尽管libcurl可以实现多线程抓取,但他也只限于抓取网页这个功能,抓回来的数据进行再处理很麻烦). 于是决定用python重新写,python支持多线程啊。 已经有一年多没有用过 python了,很多语法,语言特性都快忘记得差不多了。 经过三天业余时间的 摸索,今天我写的这个程序终于可以和大家交流了。 程序现有功能: 1. 能自动从12个网站抓取代理列表,并保存到数据库里面 2. 自动验证每个代理是否可用,并保存验证时的响应时间做为判断代理速度的依据 3. 能分类输出代理信息, 已验证的,未验证的,高度匿名代理,普通匿名代理,透明代理到不同文件 4 支持的输出格式有 xml,htm,csv,txt,tab 每种文件都能自定义字段和格式 5. 扩展性比较强, 要添加一个新的抓取网站只需要改变一个全局变量,添加两个函数 (有详细接口说明) 6. 用 sq阅读全文

posted @ 2007-06-01 14:17 Go_Rush 阅读(13517) 评论(19) 编辑

2007年5月11日

摘要: 以前写过一个,巨傻,用了一堆的if ...else 和 switch 等等。
现在稍微改进了一下,虽然没什么技术含量,但代码简练多了。。。
阅读全文

posted @ 2007-05-11 11:53 Go_Rush 阅读(3402) 评论(6) 编辑

2007年4月12日

摘要: 在我上一个帖子里面,讨论了如何验证15,18位身份证号码的合法性,并能取得一些简单的信息,
比如:身份,生日,性别等。

现在,可以取城市和地区了......
阅读全文

posted @ 2007-04-12 15:46 Go_Rush 阅读(44584) 评论(15) 编辑

摘要: 工作中需要用到身份证验证,还要支持检查15位和18位。
我一时手懒,问同事有没有现成的函数可用,同事google了一下,扔给我一个 asp-vbscript版本的函数。

可我这边是客户端javascript呀,于是用改 vbs-->js
改完发现蛮好用的,同时发现 vbscript真的很啰嗦,居然写了50多行,我改成js 只用了11行。
当然,我并完全是指vbscript啰嗦,那个写这段vbs代码的无名氏也是个唐僧性格.....阅读全文

posted @ 2007-04-12 13:48 Go_Rush 阅读(64832) 评论(14) 编辑

2007年4月3日

摘要: JavaScript中几乎每个对象都有一个 toString()方法,而且是内置的.用来输出当前
变量的信息. 但是对于我们最常用的Object对象.每次用 toString都是打印[object Object]

{a:1,b:2,c:3}.toString() ===> [object Object]
让人十分郁闷,为此我实现了一个友好的,打印Object各成员的函数,
支持嵌套输出 ,也能友好打印数组内容.
阅读全文

posted @ 2007-04-03 01:26 Go_Rush 阅读(4391) 评论(15) 编辑

2007年1月16日

摘要: 对于任何初学 ASP,PHP 或者其他语言的初学者来说,每个人都应该会有过这种经历。

把帮助手册, MSDN上看到 一个函数/对象 的示范代码,复制到自己的asp/php页面,
然后执行,修改他们来加深学习印象。

我当时也是这样做的,不过我是写了一个javascript小程序来帮助自己.
现在发布出来供初学者使用.........阅读全文

posted @ 2007-01-16 13:16 Go_Rush 阅读(1623) 评论(2) 编辑

摘要: 续上回: 怎样写一个通用的JavaScript效果库!(1/2)

在上个随笔中贴出了效果库的整体框架,和一个简单的opacity插件. 以及他们的实现原理和详细代码
今天这个随笔主要是扩展其他常用效果插件,毕竟框架只能是个空壳,内容还是要自己充实。
如果看过了我上篇的实现细节,这里就不多说废话了,来段代码先。。。
阅读全文

posted @ 2007-01-16 09:11 Go_Rush 阅读(4949) 评论(7) 编辑

2007年1月15日

摘要: JavaScript的动态效果最基本的是 动态改变大小,移动位置,改变透明度,改变颜色等等。
而其他一些比较炫的效果无非是对这些最基本效果的组合和运用。

现在网上已经有很多很不错的优秀Javascript库或者效果库,我们是否有必要再造轮子呢?
放眼望去,Yahoo UI, 基于Prototype的scriptaculous, Rico, JQuery, Dojo,还有很多很多。
这些库都带有很不错很优秀的动态效果。我们可以直接使用。
但是对于一些中小型项目来说,只是偶尔用到一两个特效,就没有必要引用整个框架,要知道
这些家伙体积都不小哦。 prototype.js 50K, scripttaculous的 effects.js也有40-50k. dojo,yui 则更大。

在大多数情况下我们需要一个小巧独立(300行代码以内),无侵入性的效果库。.即使有现有的轮子,
我们不但要学会怎么使用轮子,更要学会如何亲手造一个轮子。
基于以上原因,我们今天来重写一个灵活的,扩展性强的,小巧的,跨浏览阅读全文

posted @ 2007-01-15 20:32 Go_Rush 阅读(6700) 评论(16) 编辑

2006年12月28日

摘要: 都是基于 String.prototype 的扩展:

起因是有个网友和我讨论两个函数,

一个是 isDateTime (判断字符是否是符合 yyyy-mm-dd日期格式)
另一个是 left 函数,类似vbscript的left 实现中英文字符的混合截取。

他两个函数都用了循环,还用了N多 if 语句,每个函数都超过了40行代码,问我有无好的办法精简一下。
于是,我就写出了下面的代码,不敢说最效率最高,但是已经是够精简了, left函数才1行代码

代码如下。。。
阅读全文

posted @ 2006-12-28 18:27 Go_Rush 阅读(3118) 评论(4) 编辑

摘要: 很早以前发现对于一个 html 元素, id 可以是中文的,而且用 getElementById 方法可以正确取到dom

小弟孤陋寡闻,今天才知道 javascript居然支持 中文编程....

(中文函数名,中文变量名,中文......)阅读全文

posted @ 2006-12-28 13:56 Go_Rush 阅读(5757) 评论(22) 编辑

2006年12月19日

摘要: 如果 img标签的 src为一个 gif 动画,那么他的 onload事件会重复触发,就像一个死循环永远不会停
firefox就没有这样的问题。

bug回放代码及解决办法:阅读全文

posted @ 2006-12-19 09:56 Go_Rush 阅读(2778) 评论(15) 编辑

2006年12月15日

摘要: 如题:
1.this指钟非常容易出错的地方.
2.attachEvent 和 addEventListener 事件处理中的实现差异,(主要是对this的处理差异) 及解决办法阅读全文

posted @ 2006-12-15 01:09 Go_Rush 阅读(5196) 评论(4) 编辑

2006年12月14日

摘要: 如果您对JavaScript比较熟悉,您一定会对数组情有独钟,因为它确实是一种非常方便,应用非常广泛的
数据结构,但是对于哈稀对象这个青苹果,哪怕您只啃过它一口,你一定永远不会忘记它的甜美。
他作为一种数据结构,在许多场合可以简化编程,在海量数据面前,他的性能要远远高于数组。
他作为一种对象,可以在JavaScript实现类,模拟面向对象编程。

本文就讨论哈稀对象作为JavaScript的一个基本数据结构,巧用哈稀对象 把原本可能要许多行代码
才能实现的功能,用两三行代码来实现阅读全文

posted @ 2006-12-14 13:31 Go_Rush 阅读(3170) 评论(20) 编辑

2006年12月8日

摘要: 详细列出了prototype.js 中四个不完善(考虑不周)的地方(Bug), 以及在实际使用prototype.js 开发过程中.
两个非常容易出错的地方(函数)。阅读全文

posted @ 2006-12-08 13:01 Go_Rush 阅读(3573) 评论(14) 编辑

2006年12月6日

摘要: 对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了.

但是对于静态文件(css,jpg,gif等等), 在什么场合下面我们需要禁止浏览器缓存他们,怎么做?
本文讨论的主题是如何防缓存, 尤其是如何防止静态文件被缓存..阅读全文

posted @ 2006-12-06 09:37 Go_Rush 阅读(5290) 评论(12) 编辑

2006年12月4日

摘要: 在用博客园二级域名访问的情况下,应该被缓存的静态资源未被缓存.导致客户端浏览效率低下,服务器压力不必要的增大.

为什么会出现这样的状况,怎么解决.

请进来聊.阅读全文

posted @ 2006-12-04 08:03 Go_Rush 阅读(3670) 评论(20) 编辑

2006年12月1日

摘要: sort方法是Array的一个内置方法,它支持传一个函数作为参数来进行自定义排序.
本文就详细探讨 sort方法的使用技巧以及利用函数参数实现对复杂数据结构(比如
多维数组,哈稀结构,Dom节点)的排序.

最后,详细分析探讨一下 prototype.js 中 sortBy的源码细节.....阅读全文

posted @ 2006-12-01 03:17 Go_Rush 阅读(6846) 评论(13) 编辑

2006年11月30日

摘要: element.appendChild(newNode) 方法中,如果 newNode本身是Dom中的一个节点. 那么appendChild方法执行的不再
是append操作了,而是一个move操作. 利用这个特点,我们可以实现很多巧妙的Dom操作.

我们先来看看前段时间CSDN 三百多人参与讨论的 五行代码实现无缝文字滚动 的原代码,看看他是怎么利用 appendChild来滚动文字的....
再来讨论一下利用 appendChild来实现表格排序的技巧......阅读全文

posted @ 2006-11-30 03:42 Go_Rush 阅读(6388) 评论(37) 编辑

2006年11月29日

摘要: 现在用脚本控制 html 元素样式的方法真的很多很多。
对单个元素可以直接 element.style.display=......修改一个样式,也可以 element.className=...修改它的多个样式。
对于多个元素修改样式可以用脚本直接 import css文件。
目前项目中有这么一个需求。 要求改变某 div下所有子孙结点的样式,但不改变div本身样式。
Easy: 我只用一行代码就解决了这个问题。
代码如下:阅读全文

posted @ 2006-11-29 19:28 Go_Rush 阅读(3199) 评论(14) 编辑

摘要: function funcA(){
funcB();
//other code
}
怎么定义函数B,让B在运行的时候不仅能终止B本身,而且能终止函数A的运行?

这是个非常规的问题,我们分两大部分讨论. (1.为什么一定这样做 2.怎么实现)

1. 显然,这种编码方式已经打乱了正规的程序编写原则,我们编写函数的目的就是为了封装,为了实现代码的模块化. 如果B能让A退出返回, 那这种编码方式肯怕比滥用 goto 语句还滥了,但我们为什么还要用它??
阅读全文

posted @ 2006-11-29 03:50 Go_Rush 阅读(5208) 评论(14) 编辑