1.客户端请求
<script type="text/javascript"> var HttpRequest; function CreateXmlHttpRequest() { if(window.XMLHttpRequest) { HttpRequest=new XMLHttpRequest(); } else if(window.ActiveXObject) { HttpRequest=new ActiveXObject("MICROST.XMLHTTP"); } } function Send() { document.getElementById("test").innerHTML="等待返回信息"; CreateXmlHttpRequest(); if(HttpRequest!=null) { HttpRequest.onreadystatechange=ShowMessage; HttpRequest.open("GET","Handler.ashx?name="+escape("leon")+"&m"+Math.random()); HttpRequest.send(); } } function ShowMessage() { if(HttpRequest.readyState==4&&HttpRequest.status==200) { if(HttpRequest.responseText.length>0) { alert(HttpRequest.responseText);//收到信息 //如果有信息返回 重新发送请求 递归 Send(); } } } </script>
2.服务的如何hold请求
public class Handler : IHttpHandler { private bool ok = true; public void ProcessRequest(HttpContext context) { ok = true; while (ok)//超时设置ok为false即可 { //循环检查是否有信息存在 Check(); //防止循环太频繁 System.Threading.Thread.Sleep(1000); } } private void Check() { List<message> list = new List<message>();//信息列表 string str = ""; lock (im.mlist) { if (im.mlist.Count > 0) { foreach (message m in im.mlist) { if (m.username == HttpContext.Current.Request["name"].ToString()) { list.Add(m); str = m.messagecontent; break; } } if (list.Count > 0) { foreach (message m in list) { im.mlist.Remove(m); } } //收到信息 循环结束 ok = false; if (list.Count > 0) { //推信息 HttpContext.Current.Response.Write("收到信息:" + str); } } } } public bool IsReusable { get { return false; } } }
相关推荐
ajax长连接及demo
所谓的长连接,就是不断去发送请求,把请求阻塞在服务器端,每次超过请求时间就去重新发送请求,保持连接,随时获取服务器端的响应的数据 项目案例: 代码如下: function connection(){ $.ajax({ type:”GET”, url:...
Ajax工作原理是提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新UI,并向服务器发出异步请求,以执行更新或查询数据库。当...
主要介绍了ajax实现服务器与浏览器长连接的功能的相关资料,感兴趣的小伙伴们可以参考一下
在Jsp页面使用Ajax读取MySQL数据库内容,同一个页面多个Ajax任务
二:ajax持久连接 + 长轮询 客服端采用第一种方式:iframe + 服务器推技术 思路: 1:新建comentbyiframe.php 该用文件使用while(true)一直连接到服务器不断开. 如果在while的过程中查到了新数据.使用ob_flush推给...
带数据库连接的AJAX表单验证实例PHP版 一个带数据库连接的AJAX表单验证实例,运行于PHP环境,免费开源的程序,这意味着您可以在不用于商业目的的情况下对程序代码进行修改、使用和再发布。本例包括一个自定义的Ajax...
C# ajax和数据库连接池小实例C# ajax和数据库连接池小实例C# ajax和数据库连接池小实例
NULL 博文链接:https://mousepc.iteye.com/blog/1038365
ajax连接数据库,整个过程的示范连接,非常详细
2.不再定时不断请求Http请求,降低服务器资源消耗,可参考Taobao核心系统团队博客《http长连接200万尝试及调优》; 3.TX微博等很多应用均采用服务器推技术,你还在用Ajax? 网上关于服务器推技术的文章多,但关于.net...
ajax开发实例,以及怎样在web.xml中利用过滤器设置字符,连接oracle数据库实例代码等,在eclipse下开发的,配置一下直接可以运行^_^
最近一哥们在做一个Ajax长连接的项目,页面需要和服务器保持长连接,而且在连接超时后需要重新请求连接,过程中他问我要用到什么,我也是想都没想就告诉他用jQuery。jQuery不是有ajaxSuccess ajaxError这些对象吗,...
Jquery各种连接操作 Ajax JqueryJquery各种连接操作 Ajax Jquery
Ajax实现客户端验证(连接数据库检查用户名&ID是否唯一)终版.pdf
DWR 长连接方式上传图片,java 反响ajax上传图片DWR 长连接方式上传图片,java 反响ajax上传图片DWR 长连接方式上传图片,java 反响ajax上传图片
一个简单的php ajax程序,包括用户登录、数据库查询、修改、删除数据的功能。
使用ajax实现注册验证用户是否可以注册,另外还加了连接池比不使用数据库速度快5倍以上
资源概要:基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。...然后通过iframe和ajax方式分别程序设计实现长连接、长轮询。