【发布时间】:2022-08-02 23:43:48
【问题描述】:
我正在做一个 Blazor Wasm 项目,我在表中搜索的性能存在问题(我的表现在有 3500 个元素,但在生产中它可以有 10000 个)。我必须提高性能,但我不知道该怎么做。是否从 C# 或 Javascript 处理它。
我正在使用 MudBlazor 组件。
有问题的表:
<Virtualize Context=\"item\" OverscanCount=\"50\" TItem=\"ArticuloDto\" Items=\"lArticulos\">
@if(FilterArticuloFunc(item))
{
<tr class=\"d-flex pa-2\" style=\"border-bottom: 1px solid var(--mud-palette-tertiary);\">
<div class=\"flex-grow-1 flex-shrink-1 align-self-stretch\">
<MudText Typo=\"Typo.body1\" Style=\"word-break: break-all;\">@item.Descripcion</MudText>
<MudText Typo=\"Typo.body2\" Color=\"Color.Secondary\">Codigo: @item.Codigo</MudText>
</div>
<div class=\"flex-shrink-0\">
<MudText Typo=\"Typo.h1\" Align=\"Align.Right\">$@item.Precio</MudText>
<MudText Typo=\"Typo.body2\" Align=\"Align.Right\" Color=\"@StockToColor(item.ExistenciaActual)\">Stock: @item.Existencia</MudText>
</div>
</tr>
}
</Virtualize>
有问题的 FilterFunc:
private bool FilterArticuloFunc(ArticuloDto element)
{
if (string.IsNullOrWhiteSpace(searchProductText))
return true;
if (element.Codigo.Contains(searchProductText, StringComparison.OrdinalIgnoreCase))
return true;
if (element.Descripcion.Contains(searchProductText, StringComparison.OrdinalIgnoreCase))
return true;
return false;
}
标签: javascript c# .net blazor webassembly