使用AJAX控制項來實現Ajax操作(支援伺服器事件)

來源:互聯網
上載者:User

在一個線上客服系統中,使用了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">
  var talks = document.getElementById("Talks");

//Talks是網頁上的標籤,用於顯示該請求返回的字串  
  function Pop()
  {
   talks.innerHTML = GuestTalk.GetTalks().value;
   GuestTalk.ClearGuest();
  }

   //20秒自動重新整理一次,20秒取得一次資料.
   timer = window.setInterval('Pop()',20000);
  </script>

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.