دسته بندی ها
18:52 1403/12/30

رفع مشکل لود مجدد اطلاعات از سرور در Blazor

مشخصات سوال کننده :
کاربر : hakan2025     امتیاز کاربر : 3     رتبه کاربر : 136
دسته بندی : Blazor

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 338
پاسخ دهنده : fateme 16:28 1404/01/02

مشکل کد شما این هست که StreamRendering و InteractiveServer رو با هم استفاده کردید. به طور پیش فرض خود StreamRendering باعث میشه ابتدا بخش های Static صفحه لود بشن و سپس درخواست لود اطلاعات داینامیک رو میده. اما در InteractiveServer هم یکبار دیگه درخواست لود اطلاعات داده میشه. پس عملا باعث میشه دو بار اطلاعات لود بشن.

برای رفع این مشکل باید InteractiveServer رو به صورت PreRender اجرا نکنیم. برای این کار به صورت زیر عمل کنید :

@page "/product"
@attribute [StreamRendering]
@rendermode @(new InteractiveServerRenderMode(prerender:false))

<div>
   ...دستورات html نمایش کالاها
</div>

@code {
   ProductDto[] _products;

   protected override async Task OnInitializedAsync()
   {
      await Task.Delay(5000);
      _product = DbContext.Products;
   }
}

در کد بالا خاصیت PreRender رو false کردیم تا StreamRendering و InteractiveServer همزمان با هم اجرا بشن و صفحه 2 بار لود نشه.

ویرایش شده در شنبه 2 فروردین 1404 ساعت 16:29:49
به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود