这是一篇从技术角度来说非常入门级的文章,别看到标题又是AJAX又是chat room,就以为用到了Atlas和HttpHandler之类复杂的东西,实际上它仅仅使用了XMLHttpRequest和Page。这就降低了读者所需要跨越的技术门槛,即使你平常只是使用Page,而对XMLHttpRequest也仅有一点点的了解,也不会妨碍你阅读这篇文章。
文章开篇第一段Introduction简单介绍了项目的背景,作者说他最初设计聊天室是使用ASP,只放置了两个文本框,并且采用每几秒刷新一次的办法。这听起来很“原始”对吧,不过我觉得正是“原始”的东西才能够让新手容易理解和模仿,然后他们才能一步一步做出更高级的东西来。
文章的第二段说明了sample的一些情况,例如它只有一个聊天室,用户列表会随用户登录和会话超时而改变。文章的第三段告诉你一些程序的特性,例如它创建了一个ChatEngine的类,这个类负责处理整个聊天室相关的逻辑,并且声明其一个静态实例于HttpApplication当中。
接下来文章会仔细说明这个聊天室的工作流,如果你有过制作聊天室的经验,你可以一边对比着自己的经验,一边去理解文章的意思和其中的代码。这个聊天室的sample虽然是用ASP.NET写成的,但却是混合则ASP和ASP.NET的写作风格,然而又不至于让人觉得杂乱无章,反而可能会让你感觉到“简单就好”的道理——有时候在ASP.NET中制作一个简单应用,特别是非面向页面的,用回ASP的面向流的方式思考也不错。
如何建立共识 (Building Consensus)
作者是Brad Abrams,文章第一句就说"One of the core skills of a Program Manager is to build consensus",也就是“程序经理的一项核心技能就是建立共识”。接着作者花了两段的文字说明在Microsoft这样的企业内部,建立共识是多么重要的一件事情,然后就开始列举建立共识的方法了。
在文章中,作者共列举了25种建立共识的方法,包括“请求帮助”、“写下来”、“获取数据”等等,每一个方法后面都有一小段文字帮你理解它的意思。你可以先尝试用自己的经验去理解方法的名称,然后再看看后面的说明是否和你想的一致。别忘记了,"not all of them work in every case, pick the ones that feel best for you and for the situation",也就是说“并非所有方法都在各种场合中适用,选择那些让你感觉到对你和对当前形势最好的方法”。
最后,作者还指出了3个会让你无法建立共识的做法,分别是“祈求忽略”、“事件升级”和“来自高层的任务”。使用这个3种方法,通常会导致共识无法达成。
通过Flash替换法在页面上显示特定字体 (sIFR 2.0: Rich Accessible Typography for the Masses)
超值赠送部分又来了,这次提供的是一个Flash+JavaScript的小工具,能够让你将页面上特定区域(通常是标题)的文字用Flash替换掉,而好处当然是可以显示任何你想要的字体,因为Flash是可以嵌入字体的。
需要下载此工具的话,可以直接滚动到该文章的最后一部分找到下载链接。文章的中间部分解释了它是怎么工作的:
一个普通的XHTML页面加载到浏览器中。
一个JavaScript函数开始检查是否安装了Flash以及搜索出你指派它处理的tag、id或class。
如果没有安装Flash,那就什么事情都不会发生。如果安装了Flash,它就帮你遍历你指派它处理的元素,测量它们当前的大小。
一旦测量完成,JavaScript就会在元素上创建一个相同大小的Flash覆盖原本的文字,并将原本的文字通过Flash变量的形式传入。
Flash中的ActionScript会按照你指定的字体绘制传入的文字,从6点字体开始放大,直到它刚刚好填充满Flash的大小。