使用AJAX控件来实现Ajax操作(支持服务器事件)

在一个在线客服系统中,使用了Ajax技术实现无刷新的信息更新。下面这个例子是定时清理不在线的客户

 

首先在load事件中注册
private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   Ajax.Utility.RegisterTypeForAjax(typeof(Project.www.SC.GuestTalk)); //这里注册了类名
  }

 

 

//===========服务器事件,由网页客户端发送请求============

/// <summary>
  /// 清理活动时间过20分钟的用户
  /// </summary>
  /// <returns></returns>


  [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]


  public string ClearGuest()
  {
   DakingConfig dakingConfig = Config.GetSettings();
   foreach(DataRow drGuest in Global.DtGuestList.Rows)
   {
    TimeSpan ts = System.DateTime.Now - Convert.ToDateTime(drGuest["ActiveTime"]);
    if(ts.Minutes>= Convert.ToInt32(dakingConfig.TimeOut))
    {
     Global.DtGuestList.Rows.Remove(drGuest);
     DataRow[] drGuestTalks = Global.DtChatList.Select("GuestId=" + drGuest["GuestId"].ToString());
     foreach(DataRow drTalk in drGuestTalks)
     {
      Global.DtChatList.Rows.Remove(drTalk);
     }
    }
   }
   return "true";
  }

 

//================网页客户端请求代码=================

<script language="javascript" type="text/javascript"> var talks = document.getElementById("Talks"); function MyShow() { //2秒自动刷新一次,2秒取得一次数据. timer = window.setInterval('Pop()',RefreshTime); } function Pop() { talks.innerHTML = GuestTalk.GetTalks().value; GuestTalk.ClearGuest(); } </script>   <script language="javascript">
  var talks = document.getElementById("Talks");

//Talks是网页上的标签,用于显示该请求返回的字符串  
  function Pop()
  {
   talks.innerHTML = GuestTalk.GetTalks().value;
   GuestTalk.ClearGuest();
  }

   //20秒自动刷新一次,20秒取得一次数据.
   timer = window.setInterval('Pop()',20000);
  </script>

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值