Maison >développement back-end >C++ >Comment puis-je afficher dynamiquement les commentaires des utilisateurs lors des appels d'API de longue durée dans Blazor ?
Affichage dynamique des commentaires des utilisateurs lors des appels d'API dans Blazor
Dans Blazor, la gestion des appels d'API de longue durée nécessite de fournir des commentaires aux utilisateurs, tels que affichant un curseur d'attente ou une image "spinner". Cet article présente deux approches pour y parvenir :
Option 1 : Utiliser Task.Delay(1)
private async Task AsyncLongFunc() // this is an async task { spinning=true; await Task.Delay(1); // flushing changes. The trick!! LongFunc(); // non-async code currentCount++; spinning=false; await Task.Delay(1); // changes are flushed again }
Option 2 : Utiliser Task.Run() (pas pour WebAssembly)
Créer une tâche qui englobe l'opération longue :
async Task AsyncLongOperation() // this is an async task { spinning=true; await Task.Run(()=> LongOperation()); //<--here! currentCount++; spinning=false; }
Effet sur Pré-rendu
Dans les applications Blazor Server, le spinner peut ne pas apparaître en raison du pré-rendu. Pour résoudre ce problème, effectuez l'opération longue dans OnAfterRender au lieu de OnInitializedAsync.
protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await Task.Run(()=> LongOperation());//<--or Task.Delay(0) without Task.Run StateHasChanged(); } }
Pour des informations supplémentaires sur les implémentations efficaces de spinner, explorez le projet open source BlazorPro.Spinkit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!