11 2008 档案

摘要:周 婷 (zhouting@cn.ibm.com), 软件工程师, IBM 中国软件开发技术实验室2007 年 8 月 31 日很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题,以及如何借助开源的 Comet 框架-pushlet 构建自己的“服务器推”应用。“服务 阅读全文
posted @ 2008-11-20 17:44 leonardleonard 阅读(128) 评论(0) 推荐(0)
摘要:Http环境本身是一种无连接状态的架构,在这种架构下服务器只能是被动的接受客户端的请求,返回结果,而无法主动的给客户端发送数据。而在很多需要实时数据交互(比如Web IM)的场景中,我们却希望能及时得到服务器给我们返回的数据。此时,一种最为普遍的做法是:在客户端用定时器,定时去请求服务器的服务,来得到最新数据。而这样一来,很多时候却是在做无用功,频繁的请求也会无端的增加服务器和客户端在请求Web服务上的消耗。那么是否有一种更好的办法,既可以及时得到服务器的返回,同时又可以减少做无用功,以及频繁请求带来的性能问题呢?记得前不久,在园子里有这样的一篇文章,介绍了几种WEB环境定时刷新数据的机制。其 阅读全文
posted @ 2008-11-20 17:43 leonardleonard 阅读(224) 评论(0) 推荐(0)
摘要:作者:http://www.cnblogs.com/cathsfz/Ajax的长连接,或者有些人所说的Comet,就是指以XMLHttpRequest的方式连接服务器,连接后服务器并非即时写入相应并返回。服务器会保持连接并等待一个需要通知客户端的事件,该事件发生后马上将数据写入响应,这时候客户端就以相当“实时”的方式接收到事件通知。具体的通信模型,请参考这篇文章:《Comet:基于 HTTP 长连接的“服务器推”技术》,里面已经说得非常详细了,我就不再复述了。我们接着开始讨论如何使用.NET实现这个模型。首先我们能想到的是,我们需要一个Web Service,可以是ASP.NET Web Se 阅读全文
posted @ 2008-11-20 17:41 leonardleonard 阅读(303) 评论(0) 推荐(0)
摘要:服务器推送(Server Push) 推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息。服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接。当服务器需要再次发送一批数据时,浏览器显示数据并保持连接。以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推。 客户端拉曳(Client Pull) 在客户端拖曳技术中,服务器发送一批数据,在HTTP响应或文档头标记中插入指令,让浏览器“在5秒内再次装入这些数据”或“10秒内前往某URL装入数据”。当指定的时间达到时,客户端就按照服务器的指示去做,或者刷新当前数据,或者调入新的数据。 其实push 和 pull 这两种 阅读全文
posted @ 2008-11-20 17:15 leonardleonard 阅读(247) 评论(0) 推荐(0)
摘要:JSON 入门指南 打印本页');//--将此页作为电子邮件发送');//--级别: 初级廖 雪峰, 撰稿人2008 年 8 月 22 日JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。 尽管有许多宣传关于 XML 如何拥有跨平台,跨语言的优势,然而,除非应用于 Web Services,否则,在普通的 Web 应用中,开发者经常为 XML 的解析伤透了脑筋,无论是服务器端生成或处理 阅读全文
posted @ 2008-11-20 17:06 leonardleonard 阅读(192) 评论(0) 推荐(0)
摘要:Web Client Software Factory系列(3):View-Presenter模式 作者: TerryLee .NET设计模式(18):迭代器模式(Iterator Pattern) 作者: TerryLee .NET设计模式(19):观察者模式(Observer Pattern) 作者: TerryLee .NET设计模式(2):单件模式(Singleton Pattern) 作者: TerryLee .NET设计模式(3):抽象工厂模式(Abstract Factory) 作者: TerryLee .NET设计模式(4):建造者模式(Builder Pattern) 作者: 阅读全文
posted @ 2008-11-20 16:26 leonardleonard 阅读(180) 评论(0) 推荐(0)
摘要:一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员); 另外,接口有如下特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成 阅读全文
posted @ 2008-11-20 15:52 leonardleonard 阅读(158) 评论(0) 推荐(0)
摘要:原作者charlee、原始链接http://tech.idv2.com/2006/08/30/xss-faq/以及本声明。该文章简单地介绍了XSS的基础知识及其危害和预防方法。Web开发人员的必读。译自 http://www.cgisecurity.com/articles/xss-faq.shtml。简介现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其所写成 XSS)的威胁,而静态站点则完全不受其影响。这篇 阅读全文
posted @ 2008-11-13 16:14 leonardleonard 阅读(412) 评论(0) 推荐(0)
摘要:原作者charlee、原始链接http://tech.idv2.com/2007/01/02/ie-box-model-bug/以及本声明。box模型即由div等块元素的 margin、padding、border、width、height 等属性构成的显示模型,它是CSS布局的基础。通过设置div的各种属性,可以得到任何想要的页面效果。各个元素的含义如下:margin: box外边界到外层元素的距离,即余白。 border: box的边界宽度。 padding: box内的内容到box内边界的距离,即边距。 width: box的宽度。 height: box的高度。其中有问题的就是 阅读全文
posted @ 2008-11-13 16:11 leonardleonard 阅读(207) 评论(0) 推荐(0)
摘要:原作者charlee、原始链接http://tech.idv2.com/2008/02/21/unicode-intro/最近一直在忙点私活,又好久没写blog了,再不写点的话二月份就又要以单篇文章结束了。前一阵子一直在研究Unicode,索性把研究结果介绍一下吧。可能大家都听说过 Unicode、UCS-2、UTF-8 等等词汇,但它们具体是什么意思,是什么原理,之间有什么关系,恐怕就很少有人明白了。下面就分别介绍一下它们。基本知识 字节和字符的区别 Big Endian和Little EndianUCS-2和UCS-4 UTF-16和UTF-32 UTF-16 UTF-32UTF-8基本知 阅读全文
posted @ 2008-11-13 15:47 leonardleonard 阅读(243) 评论(0) 推荐(0)
摘要:margin和padding的意义相信大家都很清楚,可是在具体应用中,到底应该使用哪一个,就比较难于判断了。 这篇文章 说得挺清楚的,在这里翻译一下,供参考。何时应当使用margin需要在border外侧添加空白时。 空白处不需要背景(色)时。 上下相连的两个盒子之间的空白,需要相互抵消时。如15px + 20px的margin,将得到20px的空白。何时应当时用padding需要在border内测添加空白时。 空白处需要背景(色)时。 上下相连的两个盒子之间的空白,希望等于两者之和时。如15px + 20px的padding,将得到35px的空白。浏览器兼容性问题在IE 5.x、IE6中,为 阅读全文
posted @ 2008-11-13 15:42 leonardleonard 阅读(165) 评论(0) 推荐(0)
摘要:原作者charlee、原始链接http://tech.idv2.com/2008/04/19/secure-website-checklist/ window.google_render_ad(); fcicq最近在IPA上看到一篇安全相关的文章,它的最末尾有个checklist,于是催我把它翻译了。前几天比较忙,周末没什么事儿了,就翻译一下吧。原文的标题是如何让网站更安全。这里仅翻译文章最后的一个checklist。2008/4/20更新:fcicq倒是神速啊,马上就把具体的应用策略扔出来了参考:PHP 实践 Security Checklist标有 (*) 的检查项目表示该项是针对相关问题 阅读全文
posted @ 2008-11-13 15:34 leonardleonard 阅读(208) 评论(0) 推荐(0)
摘要:在开始之前,先熟悉几个类及部分属性、方法:CSharpCodeProvider、ICodeCompiler、CompilerParameters、CompilerResults、Assembly。  一、CSharpCodeProvider    提供对C#代码生成器和代码编译器的实例的访问。如果要动态生成VB代码,可以使用VBCodeProvider。    CreateCompiler():获取编译器的实例。  二、ICodeCompiler    定义用于调用源代码编译的接口或使用指定编译器的CodeDOM树。每种编译方法都接受指示编译器的CompilerParameters对象,并返回 阅读全文
posted @ 2008-11-12 13:53 leonardleonard 阅读(152) 评论(0) 推荐(0)
摘要:不能确定动态代码编译在什么地方是有意义的?一个普通情况就应该可以帮助阐明这个问题。假如你不得不从一个数据库中取出数据并将它放入另一个数据库。你应该只需使用一个SQL语句从源数据库中选取数据并插入目标数据库中,这只是小菜一碟,对不对?如果你正在拷贝生产数据以生成测试数据并需要改变数据以确保目标数据在以后开发中使用是安全的又将如何?你可能会构建一个数据传输系统(DTS)或某个其它传输机制,但是如果你这样做超过足够多的数据,这就会变成你每次为拷贝数据建立数据-擦除(data-scrubbing)机制而消耗时间。你可以写一个应用程序来加工并生成测试数据,但是每次你在一个不同的应用程序上用它时你都将不得 阅读全文
posted @ 2008-11-12 12:25 leonardleonard 阅读(156) 评论(0) 推荐(0)
摘要:这是風語·深蓝很早以前写的一个正则表达式验证工具类,包含了一些常见的校验和支持自定义的正则表达式匹配,可以选择完全匹配,也可以获取所有匹配项。曾用它仿造Eclispe下的正则表达式插件写过一个工具。因为最近突然有几个朋友都在问这方面的问题,干脆就把代码贴出来好了。usingSystem;usingSystem.Collections;usingSystem.Text.RegularExpressions;namespaceXrinehart.Framework.Common.Validate{/**////summary///RegularMatch的摘要说明。 ////summary 阅读全文
posted @ 2008-11-12 09:27 leonardleonard 阅读(258) 评论(0) 推荐(0)
摘要:随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。其实要设计一个高可用、高负载的系统还是有一定的规矩可循的,其手段无外乎向上扩展(Sacle Up 硬件扩展)或者向外扩展(Scale Out 软件扩展),这两种方案在某一阶段时期,会显著改善网站的性能,但不久之后,问题依旧。本文参考网上相关资料,试图提供一个可行的 "有限" 解决方案。早期1. 对业务应用进行垂直分割,将不同的业务边界划分出来。程序员常说的 "多层体系" 只是纵向解决了不同编程层次的划分,相对于业务而言,并没有做出什么处理。现在 SOA 大行其道,除了人们认识到面向服务带来的互联 阅读全文
posted @ 2008-11-12 09:11 leonardleonard 阅读(142) 评论(0) 推荐(0)