国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.Net MVC實現長輪詢

2024-07-10 13:32:25
字體:
來源:轉載
供稿:網友

什么是長輪詢?

    長輪詢是“服務器推”技術實現方式的一種,可以將服務端發生的變化實時傳送到客戶端而無須客戶端頻繁的地刷新、發送請求。

長輪詢原理?

    客戶端向服務器發送Ajax請求,服務器接收到請求后,保持連接不返回消息,直到進行相關處理完畢后才返回響應信息并關閉連接,客戶端接收到響應信息后,進行相關處理,處理完畢后再想服務器發送新的請求。

長輪詢的應用場景?

    長輪詢常應用于Web及時通訊、監控、即時報價系統等需要實時將服務端的變化發送到客戶端的場景。

長輪詢的優缺點?

優點:無消息時不會頻繁的向服務器發送請求。

缺點:服務器保持連接比較耗資源

實現:

前臺代碼:

我們在回調中,再次調用函數,使其在每次請求關閉后,開始下一次請求。

<div id="container"></div><script type="text/javascript">  $(function () {    function longPolling() {      $.getJSON("/DateTime/GetTime", function (json) {        $("#container").append(json.date + "<br/>");        longPolling();      });    };    longPolling();  });</script>

后臺代碼:

我們后臺Controller要使用異步,繼承AsyncController基類

public class DateTimeController : AsyncController  {    public void GetTimeAsync()    {      //計時器,5秒種觸發一次Elapsed事件          System.Timers.Timer timer = new System.Timers.Timer(5000);      //告訴.NET接下來將進行一個異步操作          AsyncManager.OutstandingOperations.Increment();      //訂閱計時器的Elapsed事件        timer.Elapsed += (sender, e) =>      { //保存將要傳遞給GetTimeCompleted的參數                AsyncManager.Parameters["nowdate"] = e.SignalTime;        //告訴ASP.NET異步操作已完成,進行GetTimeCompleted方法的調用                AsyncManager.OutstandingOperations.Decrement();      };      //啟動計時器          timer.Start();    }    public ActionResult GetTimeCompleted(DateTime nowdate)    {      return Json(new { date = nowdate.ToString("HH:mm:ss") + " Welecom " }, JsonRequestBehavior.AllowGet);    }  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸丰县| 巴马| 长白| 云霄县| 乌鲁木齐市| 渝中区| 伊春市| 扎赉特旗| 宝清县| 古浪县| 红原县| 昌邑市| 奈曼旗| 黑河市| 闽清县| 瑞安市| 周口市| 盐亭县| 大邑县| 赤水市| 西充县| 梧州市| 滨州市| 治县。| 余姚市| 鱼台县| 昌黎县| 定陶县| 昭通市| 丰台区| 牙克石市| 河源市| 小金县| 永安市| 开远市| 建昌县| 胶南市| 同仁县| 莫力| 公主岭市| 怀化市|