Frage

Ich bin auf der Suche nach Möglichkeiten, eine Web-Seite, dass Eingeweihte eine lang andauernder (> 2 Minuten) serverseitige Aufgabe zu verbessern. Die aktuelle Version der Seite nur Uhren für die gesamte Dauer der Aufgabe, die für den Benutzer sehr frustrierend sein kann.

Ich habe schon ein paar Ideen, wie ich die Erfahrung des Benutzers verbessern könnte, aber sie alle die Verwendung von AJAX zu einem gewissen Grad verbunden wären. Aufgrund der bisherigen Erfahrungen, dass ich an diesem Projekt hatte, ich weiß, dass nicht alle Benutzer haben JavaScript aktiviert oder verfügbar.

Unter der Annahme, dass der serverseitige Prozess hat bereits so viel wie möglich optimiert, was könnte ich tun, um die Erfahrung von alle Nutzer so viel wie möglich zu verbessern?

War es hilfreich?

Lösung

Bewegen Sie den lang laufenden Serverprozess Out-of-Band.

Wenn Benutzer initiieren die Aufgabe, die Anwendung eine Nachricht an eine Warteschlange von einer Art schreiben kann; dies ist in der Regel sehr schnell, so dass Anwender die Kontrolle wieder schnell. Sobald die Nachricht der Warteschlange gestellt wird, ein anderer spezialisierter Prozess (ein Service, eine geplante Aufgabe, ein cron-Job, etc.) hebt sie auf und führt die entsprechende Aufgabe bei der ersten Gelegenheit.

Für Benutzer mit Javascript aktiviert, können Sie einen Timer einrichten, den Status der Aufgabe über AJAX und alert sie zu überprüfen, wenn die Aufgabe beendet ist.

Sie können Ihre nicht-Javascript-Benutzer informiert halten, indem sie ihre ausstehenden und abgeschlossenen Aufgaben in einer gemeinsamen Anzeige sichtbaren Stelle auf Ihren Seiten. Natürlich müssen sie sich von dem zu profitieren gerade zu halten, damit auch Sie brauchen es, dass Benutzer gelegentlich deutlich zu machen, sollte die Seite, wenn sie warten auf eine Aufgabe zu Ende aktualisieren.

Andere Tipps

  • erstellen Tabelle in der Datenbank (oder In-Memory-Objekt)
  • Aufgabe lang andauernde Fortschritte aktualisieren wird in dieser Tabelle (Objekt)
  • Web-Seite werden die Daten aus dieser Tabelle (oder Objekt) angezeigt werden soll. wie Seite aktualisieren -. Sie haben die Wahl
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top