Die Blazor-App prüft, ob die Seite ein HTML-Element mit id = enthält{dialogId} :
Wenn ein solches Element nicht vorhanden ist, wird der Standardhandler zum Anzeigen der Nachricht verwendet.
Wenn dieses Element vorhanden ist, lautet dieses Element class:
Stellen Sie ein, wie components-reconnect-showbeim Versuch, die Verbindung zum Server wiederherzustellen.
Festlegen, components-reconnect-failedwann keine Verbindung zum Server hergestellt werden konnte.
Stellen Sie ein, als components-reconnect-refusedob der Browser den Server erreicht, während der Server die Verbindung aktiv ablehnt
Standardmäßig ist das dialogIdist components-reconnect-modal. Sie können also ein Element auf der Seite erstellen und mithilfe von CSS den Inhalt und die Stile nach Ihren Wünschen steuern.
Demo:
Zum Beispiel erstelle ich drei Teile des Inhalts, die in folgenden Bereichen angezeigt werden sollen Pages/_Host.cshtml:
<divid="components-reconnect-modal"class="my-reconnect-modal components-reconnect-hide"><divclass="show"><p>
This is the message when attempting to connect to server
</p></div><divclass="failed"><p>
This is the custom message when failing
</p></div><divclass="refused"><p>
This is the custom message when refused
</p></div></div><app>
@(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app><scriptsrc="_framework/blazor.server.js"></script>
Und dann fügen wir etwas CSS hinzu, um den Stil zu steuern:
Vielen Dank. Seltsam, dass sie es unter Hosting-Modelle setzen
Aaron Hudon
@AaronHudon, weil es nur auftritt, wenn wir Blazor Server Side Modell verwenden :)
itminus
1
Es scheint, dass diese Informationen hierher verschoben wurden .
drs9222
9
Für die Javascript-Seite macht Blazor eine winzige API über das window.BlazorObjekt verfügbar .
Ein Teil dieser API ist die defaultReconnectionHandler, mit der Sie die Wiederverbindungserfahrung anpassen können, einschließlich der Einstellung verschiedener Optionen für die Anzahl der Wiederholungsversuche usw.
Es ist jedoch auch möglich, die Logik für die Anzeige des einfach auszutauschen ReconnectionDisplay
Eine einfache Implementierung sieht folgendermaßen aus und ermöglicht es Ihnen, den Prozess zu steuern:
Nun, es ist auch ein Weg, es zu lösen. Aber ich bevorzuge @itminus 'Weg mehr. Trotzdem danke.
Melon NG
Sicher, es hängt von Ihrem Anwendungsfall ab. Wenn Sie mehr Kontrolle benötigen (z. B. benutzerdefinierten Code ausführen, wenn die Verbindung fehlschlägt), ist die Verwendung der API der richtige Weg. Wenn Sie nur die Benutzeroberfläche austauschen möchten, können Sie den Vorschlag von @itminus verwenden.
Für die Javascript-Seite macht Blazor eine winzige API über das
window.Blazor
Objekt verfügbar .Ein Teil dieser API ist die
defaultReconnectionHandler
, mit der Sie die Wiederverbindungserfahrung anpassen können, einschließlich der Einstellung verschiedener Optionen für die Anzahl der Wiederholungsversuche usw.Es ist jedoch auch möglich, die Logik für die Anzeige des einfach auszutauschen
ReconnectionDisplay
Eine einfache Implementierung sieht folgendermaßen aus und ermöglicht es Ihnen, den Prozess zu steuern:
quelle