در یک page در پروژه که با Blazor web app نوشتم اطلاعات 2 بار از دیتابیس واکشی میشه و نمایش داده میشه.
@page "/product"
@attribute [StreamRendering]
@rendermode InteractiveServer
<div>
...دستورات html نمایش کالاها
</div>
@code {
ProductDto[] _products;
protected override async Task OnInitializedAsync()
{
await Task.Delay(5000);
_product = DbContext.Products;
}
}
در واقع وقتی صفحه رو باز میکنم 5 ثانیه تاخیر ایجاد کردم تا اطلاعات نمایش داده بشن. اما بعد از 5 ثانیه یک لحظه اطلاعات نمایش داده میشن و مجدد اطلاعات رو میره از دیتابیس میخونه. چه مشکلی بنظرتون وجود داره ؟
مشکل کد شما این هست که 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 بار لود نشه.
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
64
- پاسخ :
1
|
تاریخ :
1403/12/27
- ساعت :
05:26:00 PM
- بازدید :
80
- پاسخ :
1
|
تاریخ :
1403/11/30
- ساعت :
12:08:00 PM
- بازدید :
147
- پاسخ :
1
|
تاریخ :
1399/12/21
- ساعت :
10:20:00 AM
- بازدید :
2762
- پاسخ :
1
|
تاریخ :
1399/12/20
- ساعت :
10:32:00 AM
- بازدید :
2622
- پاسخ :
1
|
تاریخ :
1403/12/24
- ساعت :
06:18:00 PM
- بازدید :
79
- پاسخ :
1
|
تاریخ :
1403/12/26
- ساعت :
03:13:00 PM
- بازدید :
63
- پاسخ :
1
|
تاریخ :
1403/12/26
- ساعت :
03:04:00 PM
- بازدید :
67
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6827
- پاسخ :
1
|
تاریخ :
1403/12/01
- ساعت :
11:05:00 AM
- بازدید :
155
- پاسخ :
1
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
86
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1313
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
64
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9850
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
36
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
44
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
57
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
47
- پاسخ :
1
|
تاریخ :
1399/06/04
- ساعت :
02:25:00 PM
- بازدید :
4417
- پاسخ :
2
|
تاریخ :
1403/11/30
- ساعت :
10:36:00 AM
- بازدید :
200
- پاسخ :
2
|