Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menunjukkan Maklum Balas Pengguna Secara Dinamik Semasa Panggilan API Berlangsung Lama dalam 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)
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 }
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; }
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(); } }
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!