<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Meetrice EXT JS 编程资料馆</title><subtitle type="text">电脑学博士,软件,编程,企业应用,富客户端,服务器,浏览器,IE,CHROME,WEB,EXT,JS,AJAX,RIA,JAVASCRIPT,JSON,XML</subtitle><id>http://feed.cnblogs.com/blog/u/28876/rss</id><updated>2012-01-18T06:33:31Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/28876/rss"/><entry><id>http://www.cnblogs.com/meetrice/archive/2012/01/18/2325505.html</id><title type="text">TortoiseGit + GitHub 快速上手指南</title><summary type="text">TortoiseGit + GitHub 快速上手指南名词解释:1. TortoiseGit 是 TortoiseSVN的Git版，它很好的实现了与windows资源管理器的融合，使用界面与TortoiseSVN非常类似。 2. TortoiseGit运行在msysgit(git的windows开源版本)之上，因此，在安装TortoiseGit前需要安装msysgit。 3. GitHub是提供在线git空间的平台,免费的账号只能使用公开的空间并且需要公布所有原始码,没有其他限制。快速上手步骤: 1. 安装msysgit. 2. 安装最新版的TortoiseGit 3. 配置TortoiseG</summary><published>2012-01-18T06:10:00Z</published><updated>2012-01-18T06:10:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2012/01/18/2325505.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2012/01/18/2325505.html"/><content type="html">&lt;p&gt;TortoiseGit + GitHub 快速上手指南&lt;/p&gt;&#xD;
&lt;p&gt;名词解释:&lt;/p&gt;&#xD;
&lt;p&gt;1. TortoiseGit 是 TortoiseSVN的Git版，它很好的实现了与windows资源管理器的融合，使用界面与TortoiseSVN非常类似。&lt;br /&gt; 2. TortoiseGit运行在msysgit(git的windows开源版本)之上，因此，在安装TortoiseGit前需要安装msysgit。&lt;br /&gt; 3. GitHub是提供在线git空间的平台,免费的账号只能使用公开的空间并且需要公布所有原始码,没有其他限制。&lt;/p&gt;&#xD;
&lt;p&gt;快速上手步骤:&lt;br /&gt; 1. 安装msysgit.&lt;br /&gt; 2. 安装最新版的TortoiseGit&lt;br /&gt; 3. 配置TortoiseGit,在Setting-General-Msysgit中指定git.exe为msysgit安装目录下的\bin目录里的git.exe,另外External dll 为msysgit安装目录下的\mingw\bin;&lt;br /&gt; 4. 打开TortoiseGit程序组中的Puttygen&lt;br /&gt; 5. 鼠标点击"generate"，使用鼠标在空间面板中任意活动,产生你的Putty密钥,无需输入key passphrase,然后点击Save private key到本地.&lt;br /&gt; 6. 从Puttygen中copy你的公钥，你的公钥是一个位于第一个文本域中的比较大的随机的字母数字串，它看起来如下:&lt;br /&gt;　　 ssh-rsa&lt;br /&gt;　　 AAAB3NzaC1yc2EAAAABJQAAAIBqFftopEl3HNQ+SUmh9dFW39+IYU1ZYLG04GU&lt;br /&gt;　　 Nh02DEbgKn9qaCJDjqCh9a7LO+oN6RjcWLIwaPPlwZI1w6el5WaZKeKEOtWqgQW+&lt;br /&gt;　　 trnLRijgF9sPRR7jweM13S8lnpSvCUQbPxUyaNHZkEmY2PI1BaANv3d9YGnnhbKXPz&lt;br /&gt;　　 m0rmQ== rsa-key-20091128&lt;br /&gt; 7. 在GitHub中创建一个帐户，导航到Account settings，点击"ssh public keys", 把你在上面产生的公钥增加进去。&lt;br /&gt;&amp;nbsp;8. 在GitHub中新建一个Repository-"yourproject"，进入你的Repository-"yourproject"&lt;br /&gt; 9. 从你的Repository-"yourproject"库的主页顶部中，点击copy to clipboard 图标,你的Git地址看起来如下："git@github.com:yourname/yourproject.git"&lt;br /&gt; 10. 在你的硬盘上为这个"yourproject"源码创建一个新目录, 点击右键选择"Git Clone...".&lt;br /&gt; 11. 在URL中输入你在第8步中的URL clone地址.&lt;br /&gt; 12. 选中"Load Putty Key" ,并选择你在第4步存储的私钥位置。&lt;br /&gt; 13. 点击OK即可获取你的项目"yourproject"分支了。&lt;/p&gt;&#xD;
&lt;p&gt;日常开发步骤:&lt;/p&gt;&#xD;
&lt;p&gt;1.Git Commit 提交到本机.&lt;/p&gt;&#xD;
&lt;p&gt;2.Push 提交到GitHub.&lt;/p&gt;&#xD;
&lt;p&gt;随笔:&lt;/p&gt;&#xD;
&lt;p&gt;Git控制文件全部在项目根目录下,Svn则和文件在同一层目录&lt;/p&gt;&#xD;
&lt;p&gt;Git中一个文件会产生三个版本控制文件,而Svn只产生一个&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2325505.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2012/01/18/2325505.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2012/01/02/2310435.html</id><title type="text">&amp;lt;转&amp;gt;Java调用C/C++编写的第三方dll动态链接库（非native API）--- JNI</title><summary type="text">http://www.cnblogs.com/AnnieKim/archive/2012/01/01/2309567.html</summary><published>2012-01-02T13:47:00Z</published><updated>2012-01-02T13:47:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310435.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310435.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/AnnieKim/archive/2012/01/01/2309567.html"&gt;http://www.cnblogs.com/AnnieKim/archive/2012/01/01/2309567.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2310435.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310435.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2012/01/02/2310428.html</id><title type="text">(转)C# 把我所积累的类库全部分享给博友(附件已经上传)</title><summary type="text">http://files.cnblogs.com/LsGW/Common.zip</summary><published>2012-01-02T13:41:00Z</published><updated>2012-01-02T13:41:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310428.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310428.html"/><content type="html">&lt;p&gt;&lt;img src="http://images.cnblogs.com/cnblogs_com/lsgw/QQ%E6%88%AA%E5%9B%BE20120102155936.jpg" alt="" width="316" height="599" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;http://files.cnblogs.com/LsGW/Common.zip&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2310428.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2012/01/02/2310428.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/12/11/2284035.html</id><title type="text">c# pictureBox放转显示</title><summary type="text">Image image = Image.FromFile(@&amp;quot;c:/fp.bmp&amp;quot;); Bitmap bmp = new Bitmap(image); image.Dispose(); //释放文件占用,这句话很重要 pictureBox1.Image = Rotate(bmp, RotateFlipType.Rotate180FlipNone);//旋转 private Bitmap Rotate(Bitmap source, RotateFlipType rotateFlipType) { Rectangle rect = new Rectangle(0, 0, sou</summary><published>2011-12-11T09:09:00Z</published><updated>2011-12-11T09:09:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/12/11/2284035.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/12/11/2284035.html"/><content type="html">&lt;p&gt;Image image = Image.FromFile(@"c:/fp.bmp");&lt;br /&gt; Bitmap bmp = new Bitmap(image);&lt;br /&gt; image.Dispose(); //释放文件占用,这句话很重要 &lt;br /&gt; pictureBox1.Image = Rotate(bmp, RotateFlipType.Rotate180FlipNone);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//旋转&lt;br /&gt; private Bitmap Rotate(Bitmap source, RotateFlipType rotateFlipType)&lt;br /&gt; {&lt;br /&gt; Rectangle rect = new Rectangle(0, 0, source.Width, source.Height);&lt;br /&gt; Bitmap target = source.Clone(rect, System.Drawing.Imaging.PixelFormat.Format24bppRgb);&lt;br /&gt; target.RotateFlip(rotateFlipType);&lt;br /&gt; return target;&lt;br /&gt; }&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2284035.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/12/11/2284035.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/12/03/2275027.html</id><title type="text">[转]Ext自定义vtype动态验证</title><summary type="text">http://hi.baidu.com/huangzuduan/blog/item/4a82281b275af6f5af5133ae.html近日来对Ext特别感兴趣,也许是它那种OO的设计思想吸引了我,也可以追溯到第一次见到EXT那种漂亮的界面开始吧.求神拜佛不如自食其力,为了一点小的问题找遍了GOOGLE也没个结果,自己甚少去BBS混,也不熟悉规矩,只能硬着头皮自己干了.翻源代码是一道必不可少的工序,说来惭愧,自己对JS的认识还停留在入门阶段.这里说说自己对于Ext验证这里浅薄的理解:首先看看如下一段代码Ext.applyIf(Ext.form.VTypes, { &amp;quot;mail&amp;q</summary><published>2011-12-03T14:20:00Z</published><updated>2011-12-03T14:20:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/12/03/2275027.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/12/03/2275027.html"/><content type="html">&lt;p&gt;&lt;a href="http://hi.baidu.com/huangzuduan/blog/item/4a82281b275af6f5af5133ae.html"&gt;http://hi.baidu.com/huangzuduan/blog/item/4a82281b275af6f5af5133ae.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;近日来对Ext特别感兴趣,也许是它那种OO的设计思想吸引了我,也可以追溯到第一次见到EXT那种漂亮的界面开始吧.求神拜佛不如自食其力,为了一点小的问题找遍了GOOGLE也没个结果,自己甚少去BBS混,也不熟悉规矩,只能硬着头皮自己干了.翻源代码是一道必不可少的工序,说来惭愧,自己对JS的认识还停留在入门阶段.&lt;br /&gt;&lt;br /&gt;这里说说自己对于Ext验证这里浅薄的理解:&lt;br /&gt;&lt;br /&gt;首先看看如下一段代码&lt;br /&gt;&lt;br /&gt;Ext.applyIf(Ext.form.VTypes, {&lt;br /&gt;       "mail" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /^\w+@\w+\.\w+$/.test(_v);&lt;br /&gt;       },&lt;br /&gt;       "mailText" : "请输入正确的email格式!\n例如:username@domain.com",&lt;br /&gt;       "mailMask" : /[\w@.]/i&lt;br /&gt;      });&lt;br /&gt;&lt;br /&gt;这里是对Ext.form.VTypes进行扩展,增加了我们需要的email验证.&lt;br /&gt;&lt;br /&gt;既然是扩展,那么我们就得先来看看这个父类到底是个什么样子.&lt;br /&gt;&lt;br /&gt;Ext.form.VTypes = &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(){&lt;br /&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; closure these in so they are only created once.&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; alpha = /^[a-zA-Z_]+$/;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; alphanum = /^[a-zA-Z0-9_]+$/;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; email = /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; url = /(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&amp;amp;#;`~=%!]*)(\.\w{2,})?)*\/?)/i;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; {&lt;br /&gt;        'email' : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(v){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; email.test(v);&lt;br /&gt;        },&lt;br /&gt;        'emailMask' : /[a-z0-9_\.\-@]/i,&lt;br /&gt;        'url' : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(v){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; url.test(v);&lt;br /&gt;        },&lt;br /&gt;        'urlText' : 'This field should be a URL in the format "http:/'+'/www.domain.com"',&lt;br /&gt;        'alpha' : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(v){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; alpha.test(v);&lt;br /&gt;        },&lt;br /&gt;        'alphaText' : 'This field should only contain letters and _',&lt;br /&gt;        'alphaMask' : /[a-z_]/i,&lt;br /&gt;        'alphanum' : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(v){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; alphanum.test(v);&lt;br /&gt;        },&lt;br /&gt;        'alphanumText' : 'This field should only contain letters, numbers and _',&lt;br /&gt;        'alphanumMask' : /[a-z0-9_]/i&lt;br /&gt;    };&lt;br /&gt;}();&lt;br /&gt;&lt;br /&gt;以上就是Ext.form.VTypes的庐山真面目了,这里返回一个JSON的对象其中包括方法和属性,可以理解为这个类的公有方法和属性比较OO.&lt;br /&gt;通过分析我们可以看到这里有个规律,xxx,xxxText,xxxMask,这些东西到底都是干嘛的?&lt;br /&gt;&lt;br /&gt;在我们的TextField类里边有这么一个字符类型的属性vtype,在TextField类的初始化代码中,有这么一段&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.maskRe || (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtype &amp;amp;&amp;amp; &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.disableKeyFilter !== &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt; &amp;amp;&amp;amp; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.maskRe = Ext.form.VTypes[&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtype+'Mask']))){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.el.on("keypress", &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.filterKeys, &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;这里我把重要的用黑体字标了出来,我们可以看到,当我们设置了当前对象(TextField)vtype属性时候,当前对象的maskRe属性获取了VTypes类的this.vtype+'Mask'属性,看到这里我们就明白了xxxMask属性里边的正则表达式是自动赋值给TextField的,这个属性在TextField控件keypress事件触发时候调用的,作用是用来限制输入的字符.&lt;br /&gt;&lt;br /&gt;再看下面一段代码&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtype){&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; vt = Ext.form.VTypes;&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(!vt[&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtype](value, &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;)){&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.markInvalid(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtypeText || vt[&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.vtype +'Text']);&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;这里是fieldText控件的validateValue方法里边会执行到的代码,这段代码的作用就是验证当前控件输入的内容是否通过我们刚才定义的XXX里边的验证逻辑,如果未通过则使用this.arkinvalid方法去执行未通过操作并且返回一个false.&lt;br /&gt;具体谁调用这个validateValue方法,我们可以去查看该控件的父类,或与submit相关的类,这里只是返回一个与当前设置的vtype相关的验证属性&lt;br /&gt;&lt;br /&gt;看到这里我们也就明白了,刚才上边定义的xxx,xxxText,xxxMask的作用分别为,验证逻辑,验证失败信息,控件输入验证.&lt;br /&gt;&lt;br /&gt;知道了这些我们要来扩展这个VTypes就易如反掌了&lt;br /&gt;Ext.applyIf(Ext.form.VTypes, {&lt;br /&gt;       "mail" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) { &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义验证逻辑,返回布尔类型的验证结果&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /^\w+@\w+\.\w+$/.test(_v);&lt;br /&gt;       },&lt;br /&gt;       "mailText" : "请输入正确的email格式!\n例如:username@domain.com", &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;这里是验证失败信息&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;       "mailMask" : /[\w@.]/i   &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;这里是输入字符验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      });&lt;br /&gt;&lt;br /&gt;好了,我们的验证到这里就结束了.如果需要更深入的验证,那么我们就必须自己去实现一些复杂的逻辑了.&lt;br /&gt;&lt;br /&gt;这里再给大家贴出一些简单的验证逻辑&lt;br /&gt;&lt;br /&gt;Ext.apply(Ext.form.VTypes, {&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 年龄&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"age" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (/^\d+$/.test(_v)) {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; _age = parseInt(_v);&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (_age &amp;lt; 200)&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;   } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;},&lt;br /&gt;'ageText' : '年龄格式出错！！格式例如：20',&lt;br /&gt;'ageMask' : /[0-9]/i,&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 密码验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"repassword" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v, field) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (field.confirmTO) {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; psw = Ext.get(field.confirmTO);&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; (_v == psw.getValue());&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;},&lt;br /&gt;"repasswordText" : "密码输入不一致！！",&lt;br /&gt;"repasswordMask" : /[a-z0-9]/i,&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 邮政编码&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"postcode" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /^[1-9]\d{5}$/.test(_v);&lt;br /&gt;},&lt;br /&gt;"postcodeText" : "该输入项目必须是邮政编码格式，例如：226001",&lt;br /&gt;"postcodeMask" : /[0-9]/i,&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; IP地址验证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"ip" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/&lt;br /&gt;     .test(_v);&lt;br /&gt;&lt;br /&gt;},&lt;br /&gt;"ipText" : "该输入项目必须是IP地址格式，例如：222.192.42.12",&lt;br /&gt;"ipMask" : /[0-9\.]/i,&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 固定电话及小灵通&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"telephone" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /(^\d{3}\-\d{7,8}$)|(^\d{4}\-\d{7,8}$)|(^\d{3}\d{7,8}$)|(^\d{4}\d{7,8}$)|(^\d{7,8}$)/&lt;br /&gt;     .test(_v);&lt;br /&gt;},&lt;br /&gt;"telephoneText" : "该输入项目必须是电话号码格式，例如：0513-89500414,051389500414,89500414",&lt;br /&gt;"telephoneMask" : /[0-9\-]/i,&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 手机&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"mobile" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; /^1[35][0-9]\d{8}$/.test(_v);&lt;br /&gt;},&lt;br /&gt;"mobileText" : "该输入项目必须是手机号码格式，例如：13485135075",&lt;br /&gt;"mobileMask" : /[0-9]/i,&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 身份证&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;"IDCard" : &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(_v) {&lt;br /&gt;   &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; return /(^[0-9]{17}([0-9]|[Xx])$)|(^[0-9]{17}$)/.test(_v);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; area = {&lt;br /&gt;    11 : "北京",&lt;br /&gt;    12 : "天津",&lt;br /&gt;    13 : "河北",&lt;br /&gt;    14 : "山西",&lt;br /&gt;    15 : "内蒙古",&lt;br /&gt;    21 : "辽宁",&lt;br /&gt;    22 : "吉林",&lt;br /&gt;    23 : "黑龙江",&lt;br /&gt;    31 : "上海",&lt;br /&gt;    32 : "江苏",&lt;br /&gt;    33 : "浙江",&lt;br /&gt;    34 : "安徽",&lt;br /&gt;    35 : "福建",&lt;br /&gt;    36 : "江西",&lt;br /&gt;    37 : "山东",&lt;br /&gt;    41 : "河南",&lt;br /&gt;    42 : "湖北",&lt;br /&gt;    43 : "湖南",&lt;br /&gt;    44 : "广东",&lt;br /&gt;    45 : "广西",&lt;br /&gt;    46 : "海南",&lt;br /&gt;    50 : "重庆",&lt;br /&gt;    51 : "四川",&lt;br /&gt;    52 : "贵州",&lt;br /&gt;    53 : "云南",&lt;br /&gt;    54 : "西藏",&lt;br /&gt;    61 : "陕西",&lt;br /&gt;    62 : "甘肃",&lt;br /&gt;    63 : "青海",&lt;br /&gt;    64 : "宁夏",&lt;br /&gt;    65 : "新疆",&lt;br /&gt;    71 : "台湾",&lt;br /&gt;    81 : "香港",&lt;br /&gt;    82 : "澳门",&lt;br /&gt;    91 : "国外"&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; Y, JYM;&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; S, M;&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; idcard_array = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Array();&lt;br /&gt;   idcard_array = _v.split("");&lt;br /&gt;   &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 地区检验&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (area[parseInt(_v.substr(0, 2))] == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;) {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IDCardText = "身份证号码地区非法!!,格式例如:32";&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 身份号码位数及格式检验&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt; (_v.length) {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; 15 :&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; ((parseInt(_v.substr(6, 2)) + 1900) % 4 == 0&lt;br /&gt;       || ((parseInt(_v.substr(6, 2)) + 1900) % 100 == 0 &amp;amp;&amp;amp; (parseInt(_v&lt;br /&gt;         .substr(6, 2)) + 1900)&lt;br /&gt;         % 4 == 0)) {&lt;br /&gt;      ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 测试出生日期的合法性&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;      ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 测试出生日期的合法性&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (ereg.test(_v))&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IDCardText = "身份证号码出生日期超出范围,格式例如:19860817";&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; 18 :&lt;br /&gt;     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 18位身份号码检测&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 出生日期的合法性检查&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (parseInt(_v.substr(6, 4)) % 4 == 0&lt;br /&gt;       || (parseInt(_v.substr(6, 4)) % 100 == 0 &amp;amp;&amp;amp; parseInt(_v&lt;br /&gt;         .substr(6, 4))&lt;br /&gt;         % 4 == 0)) {&lt;br /&gt;      ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 闰年出生日期的合法性正则表达式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;      ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 平年出生日期的合法性正则表达式&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (ereg.test(_v)) {&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 测试出生日期的合法性&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 计算校验位&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10]))&lt;br /&gt;        * 7&lt;br /&gt;        + (parseInt(idcard_array[1]) + parseInt(idcard_array[11]))&lt;br /&gt;        * 9&lt;br /&gt;        + (parseInt(idcard_array[2]) + parseInt(idcard_array[12]))&lt;br /&gt;        * 10&lt;br /&gt;        + (parseInt(idcard_array[3]) + parseInt(idcard_array[13]))&lt;br /&gt;        * 5&lt;br /&gt;        + (parseInt(idcard_array[4]) + parseInt(idcard_array[14]))&lt;br /&gt;        * 8&lt;br /&gt;        + (parseInt(idcard_array[5]) + parseInt(idcard_array[15]))&lt;br /&gt;        * 4&lt;br /&gt;        + (parseInt(idcard_array[6]) + parseInt(idcard_array[16]))&lt;br /&gt;        * 2&lt;br /&gt;        + parseInt(idcard_array[7])&lt;br /&gt;        * 1&lt;br /&gt;        + parseInt(idcard_array[8])&lt;br /&gt;        * 6&lt;br /&gt;        + parseInt(idcard_array[9]) * 3;&lt;br /&gt;      Y = S % 11;&lt;br /&gt;      M = "F";&lt;br /&gt;      JYM = "10X98765432";&lt;br /&gt;      M = JYM.substr(Y, 1);&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 判断校验位&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; alert(idcard_array[17]);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (M == idcard_array[17]) {&lt;br /&gt;       &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 检测ID的校验位&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;      } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;       &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IDCardText = "身份证号码末位校验位校验出错,请注意x的大小写,格式例如:201X";&lt;br /&gt;       &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;      }&lt;br /&gt;     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IDCardText = "身份证号码出生日期超出范围,格式例如:19860817";&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;default&lt;/span&gt; :&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.IDCardText = "身份证号码位数不对,应该为15位或是18位";&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;},&lt;br /&gt;"IDCardText" : "该输入项目必须是身份证号码格式，例如：32082919860817201x",&lt;br /&gt;"IDCardMask" : /[0-9xX]/i&lt;br /&gt;});&lt;/pre&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2275027.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/12/03/2275027.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/12/02/2272661.html</id><title type="text">查询功能的改进</title><summary type="text">com.awd.jlsjlsgl.queryformpanel = Ext.extend(Ext.form.FormPanel,{initComponent:function() {Ext.apply(this,{labelAlign:&amp;#39;right&amp;#39;,labelWidth:80,defaultType:&amp;#39;textfield&amp;#39;,bodyStyle:&amp;#39;padding:20px;&amp;#39;,defaults:{width:290},items:[{xtype:&amp;#39;panel&amp;#39;,html:&amp;#39;请在下面输入查询条件：&amp;#39;,width:37</summary><published>2011-12-02T12:36:00Z</published><updated>2011-12-02T12:36:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/12/02/2272661.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/12/02/2272661.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;com.awd.jlsjlsgl.queryformpanel = Ext.extend(Ext.form.FormPanel,{&lt;br /&gt;initComponent:&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;() {&lt;br /&gt;Ext.apply(&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;,{&lt;br /&gt;labelAlign:'right',&lt;br /&gt;labelWidth:80,&lt;br /&gt;defaultType:'textfield',&lt;br /&gt;bodyStyle:'padding:20px;',&lt;br /&gt;defaults:{width:290},&lt;br /&gt;items:[{&lt;br /&gt;xtype:'panel',&lt;br /&gt;html:'请在下面输入查询条件：',&lt;br /&gt;width:370,&lt;br /&gt;border:&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;,&lt;br /&gt;style:'padding:10 0 0 3;margin:0 0 20 10;border-bottom:1px solid #ccc;font-size:14px;font-weight:bold;'&lt;br /&gt;}&lt;br /&gt;,{&lt;br /&gt;xtype:'panel',&lt;br /&gt;layout:'column',&lt;br /&gt;width:400,&lt;br /&gt;border:&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;,&lt;br /&gt;defaults:{border:&lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;}&lt;br /&gt;}&lt;br /&gt;,{xtype:'textfield',fieldLabel:'条件一',name:'s_kssmc',width:288}&lt;br /&gt;,{xtype:'cboFY',fieldLabel:'条件二'',name:'s_dj',field_type:'DJ',pageSize:10,editable:true,width:288}&lt;br /&gt;]&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;com.awd.jlsjlsgl.queryformpanel.superclass.initComponent.call(this);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* 查询窗口&lt;br /&gt;* @class com.awd.py.querywin&lt;br /&gt;* @extends Ext.Window&lt;br /&gt;*/&lt;br /&gt;com.awd.jlsjlsgl.querywin = Ext.extend(Ext.Window,{&lt;br /&gt;initComponent:function() {&lt;br /&gt;Ext.apply(this,{&lt;br /&gt;title:'高级查询',&lt;br /&gt;width:455,&lt;br /&gt;height:395,&lt;br /&gt;modal:true,&lt;br /&gt;closeAction:'hide',&lt;br /&gt;layout:'fit'&lt;br /&gt;});&lt;br /&gt;com.awd.jlsjlsgl.querywin.superclass.initComponent.call(this);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;this.queryformpanel = new com.awd.jlsjlsgl.queryformpanel();&lt;br /&gt;this.querywin = new com.awd.jlsjlsgl.querywin({items:this.queryformpanel,buttons:[{&lt;br /&gt;text:'确定',&lt;br /&gt;handler:this.queryResult,&lt;br /&gt;scope:this&lt;br /&gt;},{&lt;br /&gt;text:'重置',&lt;br /&gt;handler:function(){this.queryformpanel.getForm().reset();},&lt;br /&gt;scope:this&lt;br /&gt;},{&lt;br /&gt;text:'取消',&lt;br /&gt;handler:function(){this.querywin.hide();},&lt;br /&gt;scope:this&lt;br /&gt;}]});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//查询&lt;br /&gt;,queryResult:function(){&lt;br /&gt;Ext.each(this.queryformpanel.form.items.items, function(f) {&lt;br /&gt;this.getStore().baseParams[f.name] = f.getValue();&lt;br /&gt;},this);&lt;br /&gt;this.getStore().load();&lt;br /&gt;this.querywin.hide();&lt;br /&gt;}&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2272661.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/12/02/2272661.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/11/26/2264136.html</id><title type="text">清理SVN目录中.SVN</title><summary type="text">我们项目版本控制使用的SVN，经常会有因为没有清理.svn文件造成的不能更新和提交，今天就在网上找了一一个BAT的代码，测试过了，非常好用//----------------以下是bat代码-----------------------------@echo On@Rem 删除SVN版本控制目录@PROMPT [Com] @for /r . %%a in (.) do @if exist &amp;quot;%%a\.svn&amp;quot; rd /s /q &amp;quot;%%a\.svn&amp;quot;@Rem for /r . %%a in (.) do @if exist &amp;quot;%%a\.svn&amp;q</summary><published>2011-11-26T03:18:00Z</published><updated>2011-11-26T03:18:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/11/26/2264136.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/11/26/2264136.html"/><content type="html">&lt;p&gt;&lt;span style="font-size: x-small;"&gt;我们项目版本控制使用的SVN，经常会有因为没有清理.svn文件造成的不能更新和提交，今天就在网上找了一一个BAT的代码，测试过了，非常好用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;//----------------以下是bat代码-----------------------------&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;pre &gt;&lt;span style="font-size: x-small;"&gt;@echo On&lt;br /&gt;@Rem 删除SVN版本控制目录&lt;br /&gt;@PROMPT [Com]&lt;br /&gt; &lt;br /&gt;@for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"&lt;br /&gt;@Rem for /r . %%a in (.) do @if exist "%%a\.svn" @echo "%%a\.svn"&lt;br /&gt; &lt;br /&gt;@echo Mission Completed.&lt;br /&gt;@pause&lt;br /&gt;&lt;br /&gt;//--------------分割符里面的代码------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 生成一个BAT文件放到你要清理的文件夹，执行bat就清理文件夹下的.svn文件&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;//+++++++++++++++++更新&lt;br /&gt;删除SVN/CVS目录的bat脚本&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@echo On&lt;br /&gt;@Rem 删除SVN版本控制目录&lt;br /&gt;@PROMPT [Com]&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"&lt;br /&gt;@Rem for /r . %%a in (.) do @if exist "%%a\.svn" @echo "%%a\.svn"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@echo Mission Completed.&lt;br /&gt;@pause&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@echo On&lt;br /&gt;@Rem 删除CVS版本控制目录&lt;br /&gt;@PROMPT [Com]#&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@for /r . %%a in (.) do @if exist "%%a\CVS" rd /s /q "%%a\CVS"&lt;br /&gt;@Rem for /r . %%a in (.) do @if exist "%%a\CVS" @echo "%%a\CVS"&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: x-small;"&gt;@echo Mission Completed.&lt;br /&gt;@pause&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2264136.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/11/26/2264136.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/10/26/2225462.html</id><title type="text">&amp;lt;转&amp;gt;记录一些BCB6的使用心得</title><summary type="text">源：http://blog.csdn.net/yejun52/article/details/3867561自从2000年开始接触BCB，使用BCB作编程入门学习，一路走来，遇到了不少不大不小的问题。一晃9年过去了，BCB不再陌生，当初为问题困扰时那种手足无措的记忆也渐渐淡了。每念及此，甚有把一些心得写作文字的紧迫感。鉴于本人技术能力和文字水平之限，一直未能下决心，今天鼓起勇气做这事，好歹不论，只希望对使用BCB的后来者有些帮助。1.尽量将enum类型视为int类型使用VCL库中emun类型缺省1个字节大小，而VC中enum类型缺省4个字节大小。因此一旦遇到使用BCB编译可执行文件调用VC编译</summary><published>2011-10-26T09:15:00Z</published><updated>2011-10-26T09:15:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/10/26/2225462.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/10/26/2225462.html"/><content type="html">&lt;p&gt;源：&amp;nbsp;&lt;a href="http://blog.csdn.net/yejun52/article/details/3867561"&gt;http://blog.csdn.net/yejun52/article/details/3867561&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;自从2000年开始接触BCB，使用BCB作编程入门学习，一路走来，遇到了不少不大不小的问题。一晃9年过去了，BCB不再陌生，当初为问题困扰时那种手足无措的记忆也渐渐淡了。每念及此，甚有把一些心得写作文字的紧迫感。鉴于本人技术能力和文字水平之限，一直未能下决心，今天鼓起勇气做这事，好歹不论，只希望对使用BCB的后来者有些帮助。&lt;/p&gt;&#xD;
&lt;p&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;尽量将enum类型视为int类型使用&lt;/p&gt;&#xD;
&lt;p&gt;VCL库中emun类型缺省1个字节大小，而VC中enum类型缺省4个字节大小。因此一旦遇到使用BCB编译可执行文件调用VC编译动态库中的某个函数，且该函数使用enum类型输入参数的情况，问题就来了。在32位PC平台上一次入栈数据最小为4个字节，可执行文件将emum类型参数压入堆栈的4个字节中实际仅1个字节有效，高位其他3个字节内容为随机值，而动态库函数执行过程中使用了4个字节数据内容。&lt;/p&gt;&#xD;
&lt;p&gt;为避免发生上述问题，应该缺省将&amp;ldquo;Project&amp;rdquo;-&amp;gt;&amp;ldquo;Options&amp;rdquo;-&amp;gt;&amp;ldquo;Compiler&amp;rdquo;页面下的&amp;ldquo;Treat enum types as ints&amp;rdquo;项打勾。&lt;/p&gt;&#xD;
&lt;p&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;使用编译加速器bcc32pch&lt;/p&gt;&#xD;
&lt;p&gt;大家都知道，BCB的那个编译速度真是慢如蜗牛，让人无法忍受。好在这世上总少不了活雷锋，使用BCB编译加速器bcc32pch一定不会你失望，她可以让BCB的编译速度提高3-5倍，工程规模越大，效果越是明显。最新版是2.79,赶紧去下载吧。下载地址是：http://andy.jgknet.de/blog/?page_id=12&lt;/p&gt;&#xD;
&lt;p&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如何跨工程(Project)进行源码级调试&lt;/p&gt;&#xD;
&lt;p&gt;在日常工作中，如何跨工程(Project)进行源码级调试这是个无法回避的问题。例如：一个应用程序工程为&amp;ldquo;prj_A&amp;rdquo;，一个动态库工程为&amp;ldquo;prj_B&amp;rdquo;,&amp;ldquo;prj_App&amp;rdquo;工程中使用&amp;ldquo;prj_B&amp;rdquo;工程创建的动态库，那如何在调试&amp;ldquo;prj_App&amp;rdquo;工程过程中自动进入&amp;ldquo;prj_B&amp;rdquo;工程源码呢？其实只要将&amp;ldquo;prj_B&amp;rdquo;工程目录下名为&amp;ldquo;prj_B.tds&amp;rdquo;(编译过程中生成)的文件复制到&amp;ldquo;prj_A&amp;rdquo;工程目录下即可。要注意的是，每次&amp;ldquo;prj_B&amp;rdquo;工程源码改动之后最好重新复制该文件，要不然调试过程中可能会出现源码行定位不准确问题。&lt;/p&gt;&#xD;
&lt;p&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;不要在动态库中使用ADO控件&lt;/p&gt;&#xD;
&lt;p&gt;不要在动态库中使用ADO控件，实际上即使想用也用不了。微软原始的ADO ActiveX控件可没这个限制，Borland一封装就不行了。曾经看过ADO控件源码，发现内部包含检测实例模块是否为可执行文件模块的代码，如否则创建失败。至于为何这么做，没有细究。&lt;/p&gt;&#xD;
&lt;p&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;不要使用ExtractFileDir函数&lt;/p&gt;&#xD;
&lt;p&gt;ExtractFileDir函数实现有bug。以下内容摘自季世平及（JSP)回复：这个函数，如果发现系统语言是远东的话，并且最后的目录名含有双字节文字（比如中文汉字）的话，且最后一个双字节文字的后面的引文数字字符个数为奇数时，才会发生这个问题。具体说，如果最后的目录名为"新建文件夹1","新建文件a夹1"之类的就会有问题，但如果是"新建文件夹12","新建文件a夹12"就不会有问题。&lt;/p&gt;&#xD;
&lt;p&gt;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;命令行方式编译工程&lt;/p&gt;&#xD;
&lt;p&gt;假如工程名为&amp;ldquo;prj_A&amp;rdquo;，新建一个文本文件，输入以下命令：&lt;/p&gt;&#xD;
&lt;p&gt;bpr2mak -oprj_A.mak prj_A.bpr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;make -B -fprj_A&lt;/p&gt;&#xD;
&lt;p&gt;如果只需&amp;ldquo;make project&amp;rdquo;,而非&amp;ldquo;build project&amp;rdquo;,那么将移除&amp;ldquo;-B&amp;rdquo;选项即可。输入完毕保存文本，将文本文件后缀名改为&amp;ldquo;.bat&amp;rdquo;，双击该文件就可以看到效果了。更多选项功能，可以参考&amp;ldquo;Borland C++Builder Help&amp;rdquo;。&lt;/p&gt;&#xD;
&lt;p&gt;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如何彻底移除自带indy控件&lt;/p&gt;&#xD;
&lt;p&gt;BCB自带indy控件版本过于陈旧，更多时候更好选择是安装新版本控件。安装新版本之前必须先卸载老版本控件，由于随BCB一起发布，卸载难度加大，不过还是有办法。按下面步骤一步步操作：&lt;/p&gt;&#xD;
&lt;p&gt;a.运行BCB6,卸载indy控件包，选中&amp;ldquo;Project&amp;rdquo;-&amp;gt;&amp;ldquo;Options&amp;rdquo;-&amp;gt;&amp;ldquo;Packets&amp;rdquo;页面下indy控件包，单击&amp;ldquo;Remove&amp;rdquo;按钮卸载。&lt;/p&gt;&#xD;
&lt;p&gt;b.假如BCB安装目录是&amp;ldquo;C:/Program Files/Borland/C++Builder6&amp;rdquo;，在C:/Program Files/Borland/C++Builder6/Include/VCL目录删除所有&amp;ldquo;id&amp;rdquo;字符为首的hpp文件，在C:/Program Files/Borland/C++Builder6/Lib/obj目录分别删除dclindy.dcp、dclindy.dcu、indy.dcp、indy.dcu文件，在C:/Program Files/Borland/C++Builder6/Bin目录删除dclindy60.bpl文件，在C:/Windows/System32目录删除indy.bpl文件。&lt;/p&gt;&#xD;
&lt;p&gt;c.卸载干净，可以安装新版控件了。&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;span csdnid="titleStyle"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span csdnid="titleStyle"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;pre&gt;&lt;span csdnid="titleStyle"&gt;用BC 编译时发现少了一个DCLUSR.LIB&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;span csdnid="titleStyle"&gt;Project-&amp;gt;Edit OpitionSource打开工程源文件&lt;br /&gt;找到并删除它就可以了&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2225462.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/10/26/2225462.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/09/26/2192312.html</id><title type="text">博客园cnblogs chrome右键插件 开发</title><summary type="text">background.html&amp;lt;script src=&amp;quot;cnblogsright.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;cnblogsright.jsvar tweettext = chrome.contextMenus.create({&amp;quot;title&amp;quot;: &amp;quot;转载到博客园&amp;quot;,&amp;quot;contexts&amp;quot;:[&amp;quot;selection&amp;quot;], &amp;quot;onclick&amp;quot;: posttwtext});function posttwtext(info, tab) { var posturl=&amp;q</summary><published>2011-09-26T13:52:00Z</published><updated>2011-09-26T13:52:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/09/26/2192312.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/09/26/2192312.html"/><content type="html">&lt;p&gt;background.html&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;lt;script src="cnblogsright.js"&amp;gt;&amp;lt;/script&amp;gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;cnblogsright.js&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tweettext = chrome.contextMenus.create({"title": "转载到博客园","contexts":["selection"], "onclick": posttwtext});&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; posttwtext(info, tab) {&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; posturl="http://www.cnblogs.com/meetrice/admin/EditPosts.aspx?opt=1&amp;amp;url="+info.pageUrl;&lt;br /&gt;  chrome.windows.create({"url":posturl.replace("SELTEXT", info.selectionText), "type":"popup", "height":300,"width":600});&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tweetlink = chrome.contextMenus.create({"title": "提交到网摘","contexts":["link"], "onclick": posttwlink});&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; posttwlink(info, tab) {&lt;br /&gt;    http:&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;wz.cnblogs.com/create?t=标题&amp;amp;u=网址&amp;amp;c=描述&amp;amp;i=0&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; posturl="http://wz.cnblogs.com/create?t=SELTEXT&amp;amp;u="+info.pageUrl+"&amp;amp;c=&amp;amp;i=0";&lt;br /&gt;  chrome.windows.create({"url":posturl.replace("SELTEXT",info.selectionText), "type":"popup", "height":387,"width":470});&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tweetpage = chrome.contextMenus.create({"title": "提交到网摘","contexts":["page"], "onclick": posttwpage});&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; posttwpage(info, tab) {&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; posturl="http://wz.cnblogs.com/create?t=SELTEXT&amp;amp;u="+info.pageUrl+"&amp;amp;c=&amp;amp;i=0";&lt;br /&gt;  chrome.windows.create({"url":posturl.replace("SELTEXT",  info.pageUrl), "type":"popup", "height":387,"width":470});&lt;br /&gt;&lt;br /&gt;}&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;manifest.json&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;{&lt;br /&gt;"update_url":"http://clients2.google.com/service/update2/crx",&lt;br /&gt;  "name": "转载到博客园",&lt;br /&gt;  "version": "0.11",&lt;br /&gt;  "description": "Easily upload Conente to Cnblogs through a right-click menu.",&lt;br /&gt;  "background_page": "background.html",&lt;br /&gt;  "permissions": [&lt;br /&gt;    "contextMenus","tabs"&lt;br /&gt;  ],&lt;br /&gt;  "icons": {&lt;br /&gt;    "16": "icon.png"&lt;br /&gt;  },&lt;br /&gt;  "minimum_chrome_version": "6"&lt;br /&gt;}&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;icon.png&lt;/p&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2192312.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/09/26/2192312.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/meetrice/archive/2011/09/09/2172474.html</id><title type="text">搜狗室验室 -Web开发相关技术报告下载</title><summary type="text">Web开发相关技术报告下载重要提示：所有技术报告版权属搜狐公司研发中心所有，严禁在未经获得允许的情况下以任何形式加以转载！C10K问题---epoll简介简介：编写连接数巨大的高负载服务器程序时，经典的多线程模式和select模式都不再适用。应当抛弃它们，采用epoll/kqueue/dev_poll来捕获I/O事件。点此下载我要评论乱序优化与GCC的Bug简介：乱序优化是现代编译器非常重要的特性，本文介绍了什么是乱序优化，以及由此引发的一个gcc bug，希望引起各位开发者的注意。点此下载我要评论轻量级AJAX库简介：Ajax作为一个非常常用的功能，在页面中的作用越来越举足轻重。而对于浏览器</summary><published>2011-09-09T05:57:00Z</published><updated>2011-09-09T05:57:00Z</updated><author><name>meetrice</name><uri>http://www.cnblogs.com/meetrice/</uri></author><link rel="alternate" href="http://www.cnblogs.com/meetrice/archive/2011/09/09/2172474.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/meetrice/archive/2011/09/09/2172474.html"/><content type="html">&lt;h1 style="list-style-type: none; list-style-position: initial; list-style-image: initial; font-size: 14px; padding: 0px; margin: 0px;"&gt;Web开发相关技术报告下载&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong  style="color: #ff0000;"&gt;重要提示&lt;/strong&gt;：所有技术报告版权属搜狐公司研发中心所有，严禁在未经获得允许的情况下以任何形式加以转载！&lt;/p&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;C10K问题---epoll简介&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;编写连接数巨大的高负载服务器程序时，经典的多线程模式和select模式都不再适用。应当抛弃它们，采用epoll/kqueue/dev_poll来捕获I/O事件。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/1-1.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;乱序优化与GCC的Bug&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;乱序优化是现代编译器非常重要的特性，本文介绍了什么是乱序优化，以及由此引发的一个gcc bug，希望引起各位开发者的注意。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/1-2.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_parent"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;轻量级AJAX库&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;Ajax作为一个非常常用的功能，在页面中的作用越来越举足轻重。而对于浏览器的支持，易用性，lib本身大小就成为了衡量一个lib的指标。作者重写了ajax library用来取代现有的prototype.js。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/2-1.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.sogou.com/labs/report/ajax.zip" style="color: #0000cc;"&gt;下载附件Ajax.zip&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;用java的nio技术实现的异步连接池&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;本文重点讲解异步连接池的诞生背景和使用方法，同时介绍java nio技术的基础知识。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/2-2.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;XSS跨站脚本攻击及防范&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;XSS(Cross Site Script)跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码，当用户浏览该页之时，嵌入其中Web里面的html代码会被执行，从而达到恶意用户的特殊目的。本文介绍了该攻击方式，并给出了一些防范措施。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/2-3.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;实现跨域访问的Ajaj&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;Ajaj即Asynchronous JavaScript And JavaScript_Text。 它跟Ajax（具体的详细的介绍请参见Ajax: A New Approach to Web Applications。）类似,Ajaj也是在不刷新页面的情况下，和server进行交互，并且可以实现跨域交互。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/3-1.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;使用hudson搭建daily build系统&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;每日构建，Daily Build是指周期性地（每天）、全自动地、完整地对整个项目的代码进行编译和集成。本文以miscsearch组搭建hudson服务器的实践过程为例，介绍了daily build系统的搭建过程。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/3-2.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;Bigmem: 在32bit下利用超过4G内存&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;32bit应用程序由于寻址空间的限制，无法直接使用4G以上的物理内存, 这对一些性能要求高，内存开销大的应用程序而言是很大的限制. 本文介绍了一种在32bit下利用超过4G的内存的方法和相应的实现。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/4-1.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;C10K与高性能程序续篇&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;本文是卷1-1文章&amp;ldquo;C10K问题---epoll简介&amp;rdquo;的续篇，介绍了如何利用流水线和一些锁的技巧提高服务器吞吐量，以及新兴的Lock Free技术。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/4-2.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;h2 style="list-style-type: none; list-style-position: initial; list-style-image: initial; margin-top: 20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 8px; padding-bottom: 0px; padding-left: 8px; line-height: 24px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #e8f3ff; font-size: 14px; background-position: initial initial; background-repeat: initial initial;"&gt;基于泛型技术的工程优化方法&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div  style="padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 50px;"&gt;&#xD;
&lt;p style="list-style-type: none; list-style-position: initial; list-style-image: initial; padding: 0px; margin: 0px;"&gt;&lt;strong style="margin-left: -3em;"&gt;简介：&lt;/strong&gt;本文从对系统在工程层面上优化的角度出发，引入泛型程序设计技术，着重讲述了policy classes和type_selector两种方法对于系统工程设计与性能上的优化。其中在对policy classes的介绍中，将其与C++ virtual function做了详细分析与对比；在对type_selector技术的阐述中，介绍了如何实现源代码层面上的可配置性。本文所采用的优化方法是在程序设计层面上展开的，充分利用了C++语言的特性与灵巧的设计来达到优化目的的。本文在系统时空复杂度优化与系统设计方法两方面并重，并在最后给出了一个关于可持久化的对象与关系数据库映射（O/R Mapping）的迷你框架的实现，来阐明在实际项目中这些技术与方法的综合应用。&lt;/p&gt;&#xD;
&lt;div&gt;&lt;a href="http://www.sogou.com/labs/report/10-1.pdf"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/download.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;点此下载&lt;/a&gt;&amp;nbsp;&lt;a href="http://bbs.sogou.com/searchIn.do?query=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&amp;amp;r=join-bar&amp;amp;md=listTopics&amp;amp;name=&amp;amp;mode=0" target="_blank"  style="color: #0000cc; padding-left: 24px; display: inline-block; background-image: url('http://www.sogou.com/labs/images/comment.gif'); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-left: 24px; background-position: 0% 2px; background-repeat: no-repeat no-repeat;"&gt;我要评论&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/meetrice/aggbug/2172474.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/meetrice/archive/2011/09/09/2172474.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
