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 ?

Comment puis-je afficher dynamiquement les commentaires des utilisateurs lors des appels d'API de longue durée dans Blazor ?

Patricia Arquette
Libérer: 2024-12-28 13:11:09
original
467 Les gens l'ont consulté

How Can I Dynamically Show User Feedback During Long-Running API Calls in 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)

  • Créer une méthode asynchrone.
  • Utilisez wait Task.Delay(1); ou attendez Task.Yield(); pour vider les modifications.
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    
}
Copier après la connexion

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;
}
Copier après la connexion

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();
    }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal