Heim Backend-Entwicklung C#.Net-Tutorial Zusammenfassung der .Net MVC-Implementierung langer Abfragebeispiele

Zusammenfassung der .Net MVC-Implementierung langer Abfragebeispiele

Jun 17, 2017 am 10:30 AM
.net 实例 实现 总结

Dieser Artikel stellt hauptsächlich die relevanten Informationen von .Net MVC zur Implementierung von Long Polling vor. Er hat einen bestimmten Referenzwert.

Was ist Long Polling?

Long Polling ist eine Methode zur Implementierung der „Server Push“-Technologie, mit der Änderungen auf dem Server in Echtzeit an den Client übertragen werden können, ohne dass der Client häufig Aktualisierungen und Anfragen sendet.

Prinzip der langen Umfrage?

Der Client sendet eine Ajax-Anfrage an den Server. Nachdem der Server die Anfrage erhalten hat, behält er die Verbindung bei und gibt keine Antwortinformationen zurück und schließt die Verbindung Die entsprechende Verarbeitung ist abgeschlossen, nachdem der Client die Antwortinformationen erhalten hat. Führen Sie die entsprechende Verarbeitung durch und senden Sie nach Abschluss der Verarbeitung eine neue Anfrage an den Server.

Welche Anwendungsszenarien gibt es für Long Polling?

Lange Abfragen werden häufig in Szenarien wie Web-Instant Messaging, Überwachung und Echtzeit-Angebotssystemen verwendet, bei denen serverseitige Änderungen in Echtzeit an den Client gesendet werden müssen.

Was sind die Vor- und Nachteile einer langen Umfrage?

Vorteile: Häufige Anfragen werden nicht an den Server gesendet, wenn keine Nachricht vorliegt.

Nachteile: Es verbraucht mehr Ressourcen, um die Serververbindung aufrechtzuerhalten

Implementierung:

Front-End-Code:

Wir rufen an es noch einmal in der Callback-Funktion , um die nächste Anfrage zu starten, nachdem jede Anfrage geschlossen wurde.


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

Backend-Code:

Unser Hintergrund-Controller muss asynchron verwenden, erbt die AsyncController-Basisklasse


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);
    }
  }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonZusammenfassung der .Net MVC-Implementierung langer Abfragebeispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert man die doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen? Wie implementiert man die doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen? Mar 24, 2024 am 11:27 AM

Wie implementiert man die doppelte WeChat-Anmeldung auf Huawei-Mobiltelefonen?

So implementieren Sie die WeChat-Klonfunktion auf Huawei-Mobiltelefonen So implementieren Sie die WeChat-Klonfunktion auf Huawei-Mobiltelefonen Mar 24, 2024 pm 06:03 PM

So implementieren Sie die WeChat-Klonfunktion auf Huawei-Mobiltelefonen

PHP-Programmierhandbuch: Methoden zur Implementierung der Fibonacci-Folge PHP-Programmierhandbuch: Methoden zur Implementierung der Fibonacci-Folge Mar 20, 2024 pm 04:54 PM

PHP-Programmierhandbuch: Methoden zur Implementierung der Fibonacci-Folge

Implementierungshandbuch für PHP-Spielanforderungen Implementierungshandbuch für PHP-Spielanforderungen Mar 11, 2024 am 08:45 AM

Implementierungshandbuch für PHP-Spielanforderungen

Meistern Sie, wie Golang Möglichkeiten für die Spieleentwicklung eröffnet Meistern Sie, wie Golang Möglichkeiten für die Spieleentwicklung eröffnet Mar 16, 2024 pm 12:57 PM

Meistern Sie, wie Golang Möglichkeiten für die Spieleentwicklung eröffnet

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks May 06, 2024 pm 04:43 PM

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks

Fassen Sie die Verwendung der Funktion system() im Linux-System zusammen Fassen Sie die Verwendung der Funktion system() im Linux-System zusammen Feb 23, 2024 pm 06:45 PM

Fassen Sie die Verwendung der Funktion system() im Linux-System zusammen

So implementieren Sie eine exakte Divisionsoperation in Golang So implementieren Sie eine exakte Divisionsoperation in Golang Feb 20, 2024 pm 10:51 PM

So implementieren Sie eine exakte Divisionsoperation in Golang

See all articles