易截截图软件、单文件、免安装、纯绿色、仅160KB

关于AJAX、B/S、C/S的几个思考


B/S为何难于提供好的用户交互体验?
最大问题有几个:
  (1)无状态的HTTP协议
  WINDOWS窗体间能够通过内存直接交换信息,但作为B/S架构通讯基础协议的HTTP是无状态的。
  如果将浏览器看成是客人,Web服务器看成是旅馆,在HTTP协议的管理之下,会出现这种情况:不管某客人来访多少次,Web服务器都将其视为第一次的访客。这样一来,客人每次都得带齐身份证件供旅馆工作人员“验明正身”。
  HTTP协议的无状态,导致Web服务器的“六亲不认”,这固然能添加Web服务器的吞吐量,却给应用系统的开发带来了麻烦。因为应用系统中常常有许多业务处理流程,天生就是信息流转的,即原始数据从一端进去,从另一端出来时应该已经过某些处理,怎可想象整个业务流程中的信息会流失?于是,在HTTP各请求间共享信息就成了件麻烦事,这就是HTTP请求的“状态保持”问题。每个B/S系统都必须解决这个问题。微软想了一些“歪招”,比如充分利用HTML网页的中隐藏域,再在Web服务器上做些手脚,于是ASP.NET拥有了一套在各个HTTP请求之间维持状态的技术:SESSION,COOKIE,VIEWSTATE,PROFILE,APPLICATION。
  然而问题并没有完全解决。比如,C/S系统中常见的收集用户输入信息的对话框,主窗体与对话框之间有着信息的交换(又分为两种:模式的和非模式的,前者对话框不关掉,主窗体不能被激活),在B/S架构之下,由于浏览器的每个请求是独立的,要在两个独立的浏览器窗口间实现类似于模式对话框这种直接的信息交换,我还真不知道该怎样干。
  AJAX使用以下这种的方法来“摸拟”出模式窗体:将主窗体与对话框“合二为一”,对话框在HTML中就是一个DIV元素,平时是隐藏的,需要时再显示它。微软的AJAX CONTROL TOOLKIT中甚至为这一功能设计了一个控件。诸如此类的小伎俩,在B/S开发中不胜枚举。
  能够看到,许多在C/S轻而易举就可实现的功能,在B/S中要实现则大费周折。
  (2) 特殊的运行环境——浏览器
  B/S系统的前端运行环境是浏览器,这就带来了诸多的限制,不能干许多事,比如直接访问硬件(例如打印机),也无法充分利用硬件的资源。例如,现在的新电脑都是双核的,你能直接用JAVASCRIPT加HTML写出一个多线程程序以充分利用这两颗“奔腾的芯”?
  而C/S系统则直接运行在OS(操作系统)之上,能够调用OS提供的所有功能,这种限制就不存在了。


相关文档:

在屏幕上画图的C#实现代码


DllImport所在的名字空间 using System.Runtime.InteropServices;
[DllImport("User32.dll")]
        public extern static System.IntPtr GetDC(System.IntPtr hWnd);   
        private void button19_Click(obj ......

不用临时变量交换两个数的值(C实现)

当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换。那么能不能不用临时变量而交换两个数的值呢?可以的!C语言提供的异或运算就可以实现这样的操作。
 
异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, ......

c/c++ 左值 右值讨论

左值性(lvalueness)在C/C++中是表达式的一个重要属性。只有通过一个左值表达式才能来引用及更改一个对象(object)的值。(某些情况下,右值表达式也能引用(refer)到某一个对象,并且可能间接修改该对象的值,后述)。
    何谓对象?如果没有明确说明,这里说的对象,和狭义的类/对象(class/object) ......

C和C++的标准库

C和C++的标准库
默认分类   2008-02-28 14:28   阅读3   评论0  
字号: 大大  中中  小小
http://blog.chinaunix.net/u/6776/showart_186792.html C/C++深层探索
    本小节我们概览一下C/C++标准库的全貌。
    C/C++标准库的内 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号