# Thursday, May 11, 2006

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"

用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"

posted on Thursday, May 11, 2006 9:57:11 AM (China Standard Time, UTC+08:00)  #    Comments [1]
# Monday, April 10, 2006

用下面这个东西类可以在客户端使用HashTable哦,比较喜欢^_^

<script language="javascript" type="text/javascript">
function Hashtable()
{
this._hash = new Object();
this.add = function(key,value){
if(typeof(key)!="undefined"){
if(this.contains(key)==false){
this._hash[key]=typeof(value)=="undefined"?null:value;
return true;
} else {
return false;
}
} else {
return false;
}
}
this.remove = function(key){delete this._hash[key];}
this.count = function(){var i=0;for(var k in this._hash){i++;} return i;}
this.items = function(key){return this._hash[key];}
this.contains = function(key){ return typeof(this._hash[key])!="undefined";}
this.clear = function(){for(var k in this._hash){delete this._hash[k];}}
}
var a = new Hashtable();
a.add("aa");
a.add("bb",2342);
a.add("bb",2342);
a.remove("aa");
alert(a.count());
alert(a.contains("bb"));
alert(a.contains("aa"));
alert(a.items("bb"));
</script>
posted on Monday, April 10, 2006 1:46:00 PM (China Standard Time, UTC+08:00)  #    Comments [0]
# Tuesday, March 28, 2006

以下是INETA牛人Stephen Walther的比较测试结论.希望对大家有用

  • DataReadear比DataSet快15%
  • SqlDataReader比OleDbDataReader快50%
  • 用DataReader的ASP风格的表格显示比DataGrid绑定DataReader快60%
  • 用Ordinal的DataReader访问字段比用名字访问快15%
  • DataGrid中用AutoGenerateColumns=true比用显式绑定快24%
  • 尽量用缓存


数据不一定是非常准确的,毕竟硬件方面还是会有些影响的。但是作为提高系统效率的参照应该还是比较有用的。

posted on Tuesday, March 28, 2006 11:31:00 PM (China Standard Time, UTC+08:00)  #    Comments [4]

近一段时间一直忙于公司的项目,无暇来更新技术博客。最近几天将会做一些补充。
公司的服务器在近一个月的时间内时常崩溃,由于我们项目组开发的网站访问量远超过服务器上其他的网站,所以服务器管理员认为是我们的网站程序造成的系统崩溃。但是事实是怎么样的呢?请见以下描述:


服务器管理人员(管):你看服务器的负荷又被你们的网站占了99%,服务器崩溃了。你看一个w3wp.exe进程的cpu消耗是99%。其他客户的网站都是小型程序不可能是他们造成的,肯定是你们造成的。
:我们的网站是不好用了哦,难道真是我们的问题……我回去瞧瞧。(暗地在想,日访问量最多4万的站,不至于让我的程序这样吧)


回去后我不断的修改程序中隐藏的瑕疵,并尽量避免服务器在访问高峰更新程序,但是服务器仍然时常崩溃,频率逐渐提高,最常的时候竟然是一天3次。郁闷……什么原因呢?
今日,服务器管理人员又把我喊过去,说:"你们看看吧,服务器又崩了,你们看看怎么办?我心理就郁闷了,我说你怎么就那么肯定是我们程序的进程造成的呢?"……一阵子罗嗦后,我说:"你把我们的站点和进程池关闭,然后重新启动服务器"……几分钟后,服务器启动了,我们的网站处于关闭状态,结果服务器仍然有个w3wp.exe的cpu消耗居高不下,我说这肯定不是我们的问题了。他们也知道自己判断失误了,但是并没有道歉。我回办公室测试,发现网站的数据维护程序有个一直无法正常使用,因为cpu都被一个非我们网站的w3wp.exe给占了,怎么办?于是自己就开始研究如何处理,并与服务器管理人员一起合作查找那个w3wp.exe的真正归宿,可是任务管理器里只有pdi号没有办法直接看到所属的服务器进程池啊。怎么办?google一下。
找到了微软的文档:Iisapp.vbs:IIS 应用程序查询脚本 于是在服务器上运行iisapp.vbs脚本,并根据pid查出了对应的w3wp的进程池归属,发现是某个客户网站的程序造成的,但是由于早期管理人员并没有将客户网站适当分配进程池,百余个网站在一个默认进程池里,怎么办继续查吧,先按照一定的规则对现有客户网站适当分配进程池,然后利用iisapp.vbs查出是一个济南客户的网站程序造成的,先停掉再说,ok一切正常了。期间发现我们的w3wp.exe进程cpu使用率一直在0-1%之间,而内存消耗也不到130M,心里还是比较满意的。等项目的二期工程时,我们再好好修整一下程序,提高性能并尽量减少服务器负担,以免超大访问量时不至于死掉了,呵呵


相关文章:Iisapp.vbs:IIS 应用程序查询脚本

posted on Tuesday, March 28, 2006 4:15:53 PM (China Standard Time, UTC+08:00)  #    Comments [0]
# Thursday, January 19, 2006

宝玉的Blog上看到了名为《Sql2005带来的分页便利》的短文,文章很短,但是却让我欣喜万分,MS终于在SQL Server上给解决了大量数据的分页问题了。以前我经常羡慕MySql用户可以使用很简单的办法来处理分页问题,而今天我们在Sql2005上也同样可以很方便的处理分页问题了。

select threadid from
(
select threadid, ROW_NUMBER() OVER (order by stickydate) as Pos from cs_threads
) as T
where T.Pos > 100000 and T.Pos < 100030

以上是原文提供的查询例子,其中最重要的就是ROW_NUMBER()了,这个东西需要结合order by来使用。:)

posted on Thursday, January 19, 2006 10:55:00 PM (China Standard Time, UTC+08:00)  #    Comments [1]
# Monday, January 09, 2006

在使用vbscript进行asp开发时,一些朋友会碰到以下类似的错误:
Microsoft VBscript 运行时错误 '800a000d'
类型不匹配: '*******'
/solweb/sdbottm_right.asp, line 80

错误原因:
该错误是因为在运行iis服务的windows 2003 server上安装了Internet Explorer 6 Service Pack 1 (KB832894)安全更新造成的。

解决方案:
要纠正该问题,请下载并安装Q831167.exe(http://www.microsoft.com/downloads/details.aspx?amp;amp;displaylang=en&familyid=254EB128-5053-48A7-8526-BD38215C74B2&displaylang=en),可以在Windows Server 2003机器上阅读微软知识库831167 http://support.microsoft.com/default.aspx?kbid=831167 了解一些相关信息。

posted on Monday, January 09, 2006 9:09:09 PM (China Standard Time, UTC+08:00)  #    Comments [1]
# Thursday, January 05, 2006

2006年1月份的中国MVP名单已经出炉了,恭喜大家:

http://www.microsoft.com/china/community/Professional/MVP/MVPListMain.aspx

  2006年 1月中国最有价值专家
     [MVPs awarded by January 1st, 2006]
 

董洵 朱长德 金戈 刘海蜀 苏红超
李洪根 杨涛 叶涛 孟宪会 李彦智
王宇虹 李争 金雪根 薛君敖 胡浩
沈荣 宋立桓 林路 钟世亮 吴建荣
卢茂强 黄文中 王辉 张巍 周建平
郗金甲 黄朝阳 赵晓明 陈希章 殷杰
温大文 衣明志 刘彻 蒋晟

很荣幸我跻身与其中,在2006年度我将更努力的学习,与各位技术同仁一起成长……

posted on Thursday, January 05, 2006 4:49:25 PM (China Standard Time, UTC+08:00)  #    Comments [0]
# Friday, December 30, 2005
在应用程序中经常需要判断文件的真实类型,以便使用正确的方式打开或者有效控制文件上传类型时,我们需要读取文件的ContentType信息,这里列出一些常见的
posted on Friday, December 30, 2005 3:07:59 PM (China Standard Time, UTC+08:00)  #    Comments [3]
# Wednesday, December 21, 2005

词霸豆豆---互联网时代的金山词霸,更小巧、更强大.(近期即将推出)安装文件只有1M,下载只需几秒.占用极少系统资源.拥有金山词霸全部功能,可屏幕取词,可保存查词历史.按Ctrl键取词,不干扰您的工作学习.每日一句、生词本,提高您的英语水平.

超小客户端
安装文件只有1.5M,下载只需几秒。占用极少系统资源

互联网版的金山词霸
拥有金山词霸全部功能,可屏幕取词,可保存查词历史
全新取词方式
按Ctrl键取词,不干扰您的工作学习
在线英语学习
每日一句、生词本,提高您的英语水平


下载:词霸豆豆

posted on Wednesday, December 21, 2005 8:48:07 AM (China Standard Time, UTC+08:00)  #    Comments [2]