摘要:需求描述:由于业务需求,很多企业网站都需要在自己网站上公布邮箱, 但是,却经常被一些自动的邮箱收集工具收集之后,受到垃圾邮件的困扰。一般邮箱收集工具主要就是通过蜘蛛的方式,扫描网页,然后通过正则表达式获取邮箱地址,比如匹配:mailto, 或者 @ 符号,这样在网页中出现的<a href='mailto:xxxx@sss.com'>xxxx</a> 这样的邮箱都难逃脱被收集的厄运。有网站不得不将@符号替换为#号,然后再提醒用户自行替换。技术方案: 首先考虑可以使用脚本来创建这样的链接:<script>document.write('& 阅读全文
【讨论】从技术角度分析铁路系统订票改进方案
2012-01-06 14:02 by chris-shao, 4403 阅读, 12 推荐, 收藏, 编辑
摘要:针对铁路网站订票系统频繁的访问出错,无法订票问题,虽然很多讨论都是从制度,社会等方面做了分析,从技术角度是否能够完美解决呢?从技术方面分析该订票网站,可以看出,还是有很大的优化方案可以应用的。下文只是根据自己的一些经验加上一些分析做如下方案,希望可以抛砖引玉吧,大家都来讨论下如果我们要做这样的一个系统,会如何进行系统的设计。如果有分析不对的地方欢迎指证,但请勿恶言攻击。优化一:前端优化铁道部运输局的相关人士关于网站登陆难、提交订单过慢、余票无法查询等问题的解释称,是因为订票期间系统的访问量是平时的数十倍,导致出现异常。那么仅是由于这样的客观原因么?打开订票网站首页查看网络请求:206.9 K. 阅读全文
asp.net 根据Cookie变化控制缓存
2011-11-18 10:39 by chris-shao, 317 阅读, 0 推荐, 收藏, 编辑
摘要:遇到一个实际应用:做的网站静态内容居多,但是多语言支持,网站的开发已经结束,是将语言存入客户端cookie中,然后通过cookie值获取对应资源文件。现在需要对网站增加缓存。在asp.net 框架下,当然是首选 OutputCache。OutputCache是将客户端缓存以及服务端缓存进行统一管理,通过不同的策略设置。由于语言的更换不会修改URL,所以是无法使用浏览器缓存了(这里想起google以及很多网站在做多语言时都会把语言放入到URL中的好处了,可以充分利用浏览器缓存)。网上查了些资料,比较零碎,这里进行一个整理。首先:在web.config中定义缓存策略,在web.config中的s. 阅读全文
应用.Net 扩展方法实现更短的流程控制
2011-11-03 15:10 by chris-shao, 1640 阅读, 2 推荐, 收藏, 编辑
摘要:最近看Ruby方面的书,里面有些更简单的代码给我们一些思路,是应该使代码更加的简短,同时强化每段代码的含义将会让代码更加易读,其中关于简化流程控制的代码非常吸引人,比如:简单的 5.each{puts:x},就实现了5次循环,并对循环变量做操作。另外,例如["a","b","c"].each_with_index{|x,i|printf "%d: %s\n",i,x} 也实现了对数组的访问和操作。相比早期的到处写for循环相比,这样的代码更具有吸引力吧。在.Net中,我们也可以通过扩展方法来实现相同的简化,我做了如 阅读全文
简单实现FBML,在网页中自定义标签,使用javascript翻译
2011-10-12 10:06 by chris-shao, 505 阅读, 0 推荐, 收藏, 编辑
摘要:Facebook 在改进页面调用实现中,增加了FBML标签,这样开发者可以直接在html中加入FBML的语法实现对FaceBook API的调用,非常方便,例如,要放一个顶的按钮时,只需要如下代码<FB:Like URL="....."/>然后引入facebook的javascript,在页面生成时,javascript会自动查找这类标签,并翻译为标准html,例如上面的标签会被翻译为含有javascript的图片链接,以及一个iframe帧。具体Facebook的标签使用不是这里的重点,如果想要了解,可以参阅Facebook的帮助文档。根据这样的思路考虑,我们 阅读全文
简单示例代码,多线程见协作
2011-10-11 15:39 by chris-shao, 259 阅读, 0 推荐, 收藏, 编辑
摘要:一个简单的多线程示例,主要目的就是给一个账户加钱和给账户减钱,当账户余额小于一个值的时候,减钱的线程必须停止减钱,等有足够钱时,才能继续减钱。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;/*多线程演示实例*/namespaceMultThreadExample{classProgram{staticAccountaccount=newAccount();staticvoidMain(string[]args){System.Threading.ThreadPool.QueueUserWorkItem(newSyste 阅读全文
也谈跨站点集中式身份验证
2011-09-16 13:46 by chris-shao, 1509 阅读, 0 推荐, 收藏, 编辑
摘要:看到有朋友在讨论跨站点集中身份验证的问题,以前在一些分布式的书上了解过一些,但是都没有仔细去想。这次也借这个机会把这个问题搞清楚。这里,为了更好的说明情况,引入一个场景 。首先说下非跨域的身份验证,在我国古代,皇上的江山,肯定是由皇上说了算,谁能做什么,谁不能做什么,可是皇上也不能天天自己检查,于是,发明了令牌,见到令牌着,就犹如见到了皇上,那这个令牌,就是我们需要验证的钥匙,如果这个令牌是真的,那么好说,如果令牌无效或者是伪造的,当然没有办法做你想做的事情,皇上发了令牌,但是也不能自己来发自己查,于是,建立一个令牌发放以及验证的一个衙门,专门负责发放令牌,以及验证令牌真假。于是,在我们自己. 阅读全文
TextArea 不支持maxlength 解决办法。
2011-09-13 16:38 by chris-shao, 2346 阅读, 2 推荐, 收藏, 编辑
摘要:用.net 控件久了,在给一个页面的TextBox 增加控制长度的控制时,简单的加了一个maxlength='xxx' 就行,可是测试确总是不过,原因是设置了多行模式,在这样的情况下生成的html代码就是textarea,同时maxlength属性就没有被增加上,因为IE不支持textarea 的 maxlength属性,于是,在firefox 6中测试,发现firefox是支持这个属性的。那么就简单了。自己写了一个jquery的扩展,这样就可以很容易实现对textarea控制最大长度了。扩展代码如下:(function($){$.fn.textarealimit=functi 阅读全文
Asp.net MVC 3中修改views 目录
2011-09-09 15:36 by chris-shao, 1817 阅读, 1 推荐, 收藏, 编辑
摘要:Asp.net MVc中所有视图是放在views目录下,为了使页面可配置,并且多views并存,可切换,经研究,代码如下:第一步:继承RazorViewEngine修改类定义publicclassWebFormViewEngine:RazorViewEngine{publicWebFormViewEngine(){MasterLocationFormats=new[]{"~/TestViews/{1}/{0}.master","~/TestViews/Shared/{0}.master"};ViewLocationFormats=new[]{" 阅读全文