Я пытаюсь улучшить время загрузки веб-страницы.Страница вызывает более 75 выпадающих списков на функции загрузки.Код написан на C # с использованием веб-форм asp.net (Framework 4.7).Я перечислил все свои изменения ниже, я не уверен, что достиг своей цели, так как улучшение производительности не очень большое, и когда я запускаю код, я всегда получаю один и тот же порядок в консоли вывода при использовании Debug.Print ("").
Это то, что я сделал до сих пор ...
Добавлен Async = "true" на главной странице.
<%@ Page Title="" Language="C#" MasterPageFile="~/Sample.Master" AutoEventWireup="true" CodeBehind="Details30.aspx.cs" Inherits="Sample.Details30" Async="true" %>
Добавлен асинхронный вызов в Page_Load.
protected async void Page_Load(object sender, EventArgs e)
Добавлено ожидание загрузки всех раскрывающихся страниц внутри Page_Load.
await LoadAllDropDownLists();
Добавлено асинхронное задание для метода / функции.
protected async Task LoadAllDropDownLists()
{
var loadDocumentForm = LoadDocumentForm();
var loadStatus = LoadStatus();
var loadAgents = LoadAgents();
...
await Task.WhenAll(loadDocumentForm, loadStatus, loadAgents,...);
}
КаждыйФункция следует этому же подходу.
protected async Task LoadDocumentForm()
{
Debug.Print("LoadDocumentForm()");
using (CompanyEntities context = new CompanyEntities())
{
ddlDocumentForm.DataSource = await (from doc in context.DocumentForm
select new
{
id = doc.id,
documentForm= doc.documentForm
}).ToListAsync();
ddlDocumentForm.DataValueField = "id";
ddlDocumentForm.DataTextField = "documentForm";
ddlDocumentForm.AppendDataBoundItems = true;
ddlDocumentForm.Items.Insert(0, new ListItem("--- Select ---", "0"));
ddlDocumentForm.DataBind();
}
}