Избегайте задержки ввода пользователем в поле ввода текстового поляC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Избегайте задержки ввода пользователем в поле ввода текстового поля

Сообщение Anonymous »

У меня есть грязная сетка с нумерацией страниц/глобальным поиском. Функциональность поиска работает так, как и ожидалось, когда я тестирую ее в своем регионе, т. е. она отфильтровывает сетку, как только пользователь что-то вводит, и это кажется очень быстрым. Проблема возникает, когда я размещаю ее на сервере разработки/сцены. Пользовательский ввод задерживается. Кроме того, он отлично работает, если ввод вводится медленно. Например, если я пытаюсь довольно быстро ввести «тест» в поле поиска, он всегда пропускает 1 или 2 символа и печатает его как «tst», хотя я тщательно ввел все символы. Указатель очень часто мигает при нажатии клавиши Backspace.
Я пытался очистить кеш, но после хостинга все равно не работает, тогда как при выполнении описанного выше в моей локальной среде такой проблемы не возникает.
p>
Я не могу понять, что я сделал не так, например, почему это влияет на производительность.
Примечание. Я загружаю набор данных сразу из базы данных (внутри onInitialized ())
Код:
Index.razor











Customer Id
Customer Name
....
Actions



@context.CustomerId
@context.CustomerName
....
@context.IsActive


...







IndexBase.cs
protected void FilterChanged(ChangeEventArgs args)
{
searchString = args.Value.ToString();
table.ReloadServerData();
}
protected async Task LoadCustomers(TableState tableState)
{
IEnumerable data = CustomersWithOrderInfo.OrderByDescending(q => q.CustomerId);
data = data.Where(p =>
{
if (string.IsNullOrWhiteSpace(searchString))
return true;

if (!string.IsNullOrEmpty(p.CustomerName) && p.CustomerName.Contains(searchString, StringComparison.OrdinalIgnoreCase))
return true;

if ($"{p.CustomerId}".Contains(searchString))
return true;
return false;

}).ToArray();
totalItems = data.Count();
pagedData = data.Skip(tableState.Page * tableState.PageSize).Take(tableState.PageSize).ToArray();
return new TableData() { TotalItems = totalItems, Items = pagedData };
}


Подробнее здесь: https://stackoverflow.com/questions/712 ... or-c-sharp
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»