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

Ajax与Comet

Ajax技术已经得到很广泛的应用,在Web开发中其核心就在于异步通信和局部刷新,极大地改善了用户体验,尤其适合于高频度、低数据量的场景。在不使用Ajax的Web应用中,一个页面处理中只有一次请求,客户端处理完后一次性提交,这种一次请求和一次提交的处理可能比较耗时,从而造成客户等待,使用Ajax把这一次请求和一次提交分割成了多次小的请求和提交,先处理最关键的部分,其他处理可以以异步的方式后台处理,对界面的更新也可以做到只刷新需要更新的部分,不需要整个页面提交再刷新。Ajax的处理模式和传统的Http请求模式是一样的,也是有客户端发出Http请求,服务端处理以后返回数据,是一种拉的模式。
Comet是在Ajax基础上发展起来的一种新的Web开发架构模式,目前的Ajax只能使用拉的模式向服务器发请求,而Comet技术提供了一种由服务器向客户端推信息的处理模式,不需要客户端向服务端发送请求,服务器可以在需要的时候向客户端推送信息,这种模式在一些实时性要求较高的应用中特别有用,如聊天系统、实时股票信息等。在FLEX和Silverlight中都提供了基于Socket的连接,支持从服务器推送信息到客户端,但这种方式需要客户端安装FLASH或Silverlight运行时,Comet技术提供一种采用Ajax技术实现的服务器推技术,这种技术需要服务器端的支持,目前已有一些Java框架支持,客户端通常有两种处理模式,一种是基于Http的长连接模式,即客户端向服务器发送请求后不是马上用完就关闭连接,而是一直连接,只到服务器发送相关信息以后才关闭并建立新的连接(根据处理框架不同,可能实现技术也不一样),拿一个聊天系来说,所有用户都打开一个连接到服务器上,直到收到信息,则接收信息,关闭连接,然后又建立一个新的连接到服务器等待,或者重用原来的连接,而传统的Ajax模式是客户端轮询服务器,有信息返回信息,没信息返回空。Comet采用这种长连接模式,可以做到很实时的接收到服务器信息。另一种方式是使用Http Stream的方式,但好像IE不支持Ajax Stream,所以现在有很多框架采用隐藏的Iframe技术来实现。
那么在实际应用中如何选择到底是使用传统的Ajax还是新的Comet技术呢?这个要看具体的应用场景的需求,很多时候使用拉或者推的方式都可以满足应用的要求。传统的Ajax方式和通常的HTTP请求响应模式是一样的,所有服务器都支持,对服务器的要求小,是被广泛使用的技术。Comet这种模拟服务器推的技术在某些场合也很有用,但要求服务器端提供一些支持,同时


相关文档:

Ajax实时获取信息

Ajax的IE缓存问题,会造成用open时用get方法不能重复提交,导致获取不到实时的信息。解决的办法有以下几种: 
1.客户端在url后添加随机数. 
new Date().getTime()或者Math.Random() 
或者送请求前加上 
XMLHttpRequest.setRequestHeader("If-Modified-Since","0") 
2.或者用post方法提交  ......

Ajax的原理和应用

关于ajax的名字
    ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式。
关于同步和异步
 
异步传输是面向字符的传输,它的单位是字符;而同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟 ......

也来说说Ajax的事儿

现在如果你问别人“最近两年在Web开发领域最火的技术是什么”,Ajax这个词应该能占据一席之地。确实,自从05年底被提出,Ajax技术就以难以想象的速度迅速红遍大江南北,受到无数Web开发人员的青睐和追捧。而各种平台下的Ajax框架更是如雨后春笋般向外冒,以至于连微软这样软件业的巨头也迫不及待推出自己的框架&m ......

写一个ajax funciton

function Ajax(url)
{
var m_xmlReq=null;
if(window.ActiveXObject)
{
try
{
m_xmlReq = new ActiveXObject('Msxml2.XMLHTTP');
}
catch(e)
{
try{m_xmlReq = new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}
}
}
else if(window.XMLHttpRequest ......