Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menunjukkan Maklum Balas Pengguna Secara Dinamik Semasa Panggilan API Berlangsung Lama dalam Blazor?

Bagaimanakah Saya Boleh Menunjukkan Maklum Balas Pengguna Secara Dinamik Semasa Panggilan API Berlangsung Lama dalam Blazor?

Patricia Arquette
Lepaskan: 2024-12-28 13:11:09
asal
470 orang telah melayarinya

How Can I Dynamically Show User Feedback During Long-Running API Calls in Blazor?

Memaparkan Maklum Balas Pengguna Secara Dinamik semasa Panggilan API dalam Blazor

Dalam Blazor, mengendalikan panggilan API yang berjalan lama memerlukan penyediaan maklum balas kepada pengguna, seperti memaparkan kursor tunggu atau imej "pemutar". Artikel ini membentangkan dua pendekatan untuk mencapai perkara ini:

Pilihan 1: Menggunakan Tugasan. Kelewatan(1)

  • Buat kaedah async.
  • Gunakan await Task.Delay(1); atau tunggu Task.Yield(); untuk flush perubahan.
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    
}
Salin selepas log masuk

Pilihan 2: Menggunakan Task.Run() (bukan untuk WebAssembly)

Buat Tugasan yang menyertakan operasi panjang :

async Task AsyncLongOperation()    // this is an async task
{
    spinning=true;
    await Task.Run(()=> LongOperation());  //<--here!
    currentCount++;
    spinning=false;
}
Salin selepas log masuk

Kesan pada Prapemarahan

Dalam apl Pelayan Blazor, pemutar mungkin tidak muncul kerana prapemarahan. Untuk menyelesaikan masalah ini, lakukan operasi panjang dalam OnAfterRender dan bukannya OnInitializedAsync.

protected override async Task OnAfterRenderAsync(bool firstRender)
{
    if (firstRender)
    {            
        await Task.Run(()=> LongOperation());//<--or Task.Delay(0) without Task.Run
        StateHasChanged();
    }
}
Salin selepas log masuk

Untuk mendapatkan cerapan tambahan tentang pelaksanaan pemutar yang berkesan, teroka projek sumber terbuka BlazorPro.Spinkit.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menunjukkan Maklum Balas Pengguna Secara Dinamik Semasa Panggilan API Berlangsung Lama dalam Blazor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan