为啥很多ASP.NET网页初次访问很慢,以后几次访问很快

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥很多ASP.NET网页初次访问很慢,以后几次访问很快相关的知识,希望对你有一定的参考价值。

参考技术A 【出现频率】★★☆☆☆【解答】访问者通过浏览器初次访问ASP.NET网页,默认情况下,会使ASP.NET页面相关的代码发生编译的过程,运行库的编译器将相关的代码编译为程序集,所以初次访问响应慢。这个程序集根据初次访问的HTTP请求创建后,将被以后的请求复用,即不需重新编译,所以速度很快。【分析】本题考查面试者对ASP.NET页面编译时机的理解。在默认情况下,当接收到浏览器端的HTTP请求时,所指定的页面代码文件将会被运行库的编译器编译为一个完整的页面类。由于初次请求会引发这个过程,包括运行库初始化、分析、把页面类相关的代码编译为中间语言、然后即时编译为本地代码等,所以感觉很慢。以后再次访问这个页面时,初次访问时所创建的程序集可以被直接使用,所以浏览速度就没有多余的延迟了。本回答被提问者和网友采纳

为啥我的 asp.net 网页上不显示数据?

【中文标题】为啥我的 asp.net 网页上不显示数据?【英文标题】:Why data is not displayed on my asp.net webpage?为什么我的 asp.net 网页上不显示数据? 【发布时间】:2021-12-03 23:55:13 【问题描述】:

我正在开发食堂管理系统,我使用gridview 从数据库中显示menuList,如下所示..(这是Menu.aspx 页面)

<asp:DataList ID="DataList1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal" OnItemCommand="DataList1_ItemCommand">
    <ItemTemplate>
        <table class="nav-justified" style="height: 111px">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("menuName") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:ImageButton ID="ImageButton1" runat="server" CommandName="viewDetail" CommandArgument='<%# Eval("Id") %>' ImageUrl='<%# Eval("menuImage") %>' />
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("menuPrice") %>'></asp:Label>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Cms_AspFormsConnectionString %>" SelectCommand="SELECT [menuName], [menuPrice], [menuImage], [Id] FROM [menuInfo]"></asp:SqlDataSource>

这是Menu.aspx.cs页面

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

    if ( e.CommandName == "viewDetail" )
    
        Response.Redirect("MenuDetails.aspx?Id=" + e.CommandArgument.ToString());
    

但是当我运行它时,它什么也没显示,(当我转到源页面时,它都是空的,如下所示..)

<div>
        
        <br />
   
</div>

为什么它显示为空?以及如何解决这个问题?

【问题讨论】:

好吧,在您的事件代码中,debug.print e.commandArugment 在您跳转到其他页面之前是否显示任何值?如果您在 url 中手动输入 id,其他页面是否有效?? 【参考方案1】:

将 DataSourceID="SqlDataSource1" 添加到 DataList 标记。没有为控件设置数据源。

【讨论】:

以上是关于为啥很多ASP.NET网页初次访问很慢,以后几次访问很快的主要内容,如果未能解决你的问题,请参考以下文章

为啥asp.net 网页在局域网里不能互访

为啥页面加载总是很慢?有啥办法可以解决?

IIS+ASP.NET MVC必须知道的事

为啥我进入路由器网页后会一直自动刷新?

ASP.NET MVC:几分钟后第一次访问很慢,然后每个后续请求都很快

ASP.NET与SOAP协议使用记录