Verständnis von UmfragenTatsächlich liegt der Schwerpunkt beim Polling auf dem Intervall zwischen den Ausführungen und nicht auf der Schleife selbst. Ajax ist eine asynchrone Anfrage. Vom Einleiten der Anfrage bis zum Empfangen der Antwort ist dies ein vollständiger Prozess. Die für diesen Prozess benötigte Zeit ist unvorhersehbar. Um es auf den Punkt zu bringen: Wenn die für die Anfrage benötigte Zeit unser Abfrageintervall überschreitet, treten viele Probleme auf. Daher sollte das Abfrageintervall darauf basieren, sicherzustellen, dass der Anfrageprozess abgeschlossen ist, was logischer ist. Geschäftsbeschreibung:
Analyse der Geschäftslogikpunkte:
Umsetzungsideen
// Polling-Methode polling (Seite) { this.getWorks(Seite).then(res => { dies.pollingST = setTimeout(() => { Zeitüberschreitung löschen(diese.pollingST) this.polling(Seite) }, 10000) }) } Warum nicht setInterval verwenden? Die Funktion von setInterval scheint perfekt zum Konzept des Pollings zu passen. Wenn unser Vorgang synchroner Code ist, ist die Verwendung von setInterval kein Problem. Das Problem besteht darin, dass setInterval nicht flexibel genug ist und wir nicht wissen können, ob die letzte Anfrage abgeschlossen wurde. Daher wäre setTimeout besser. Dinge zu beachten Beim Polling habe ich den Timer mit der Variable pollingST aufgezeichnet. Der vorherige Timer muss vor jeder Ausführung gelöscht werden. Da der rekursive Aufruf innerhalb des Timers erfolgt, ist es sehr praktisch, das Polling durch Löschen des Timers zu beenden. Vollständiger Pseudocode<Skript> Standard exportieren { Daten () { zurückkehren { pollingST: null } }, Methoden: { // Seitenänderungsereignis pageChange (params) { // Lösche den vorhandenen Timer clearTimeout(this.pollingST) //Polling aufrufen this.polling(params) }, // Anforderungsschnittstellenmethode getWorks() { gib ein neues Versprechen zurück(auflösen => auflösen({})) }, // Polling-Methode polling (Parameter) { dies.getWorks(params).then(res => { dies.pollingST = setTimeout(() => { Zeitüberschreitung löschen(diese.pollingST) this.polling(Parameter) }, 10000) }) } }, erstellt () { // Polling aufrufen this.polling({ page: 1, pageSize: 5 }) }, zerstört () { Zeitüberschreitung löschen(diese.pollingST) } } </Skript> ZusammenfassenDies ist das Ende dieses Artikels über die Vue-Polling-Lösung. Weitere relevante Vue-Polling-Lösungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Alibaba Cloud Ubuntu 16.04 baut IPSec-Dienst auf
>>: Beispiel für die Implementierung einer kaskadierenden MySQL-Replikation
1. Verbindung zu MySQL herstellen Format: mysql -...
1. Laden Sie die JDK-Download-Adresse herunter我下載...
Inhaltsverzeichnis Szenarioanalyse Entwicklung Zu...
Centos7-Switch-Boot-Kernel Hinweis: Bei Bedarf wi...
Installieren Sie Apache aus der Quelle 1. Laden S...
Beim Styling unserer Webseiten haben wir die Wahl...
In diesem Artikelbeispiel wird der spezifische Co...
HTML-Struktur <Text> <div Klasse="W...
1. MySQL herunterladen 1. Melden Sie sich auf der...
Vorwort Die Dateiberechtigungsverwaltung von Linu...
Hintergrund Wie wir alle wissen, müssen wir nach ...
Linearer Farbverlauf Hintergrundbild: linearer Fa...
In diesem Artikel wird hauptsächlich die Layoutme...
Vorwort Mit der Entwicklung großer Frontends tauc...
Seit Zabbix Version 3.0 wird verschlüsselte Kommu...