如何最小化ASP.NET页面的重量?
我严重依赖web门户中的嵌套母版页,这会导致ASP.NET为其创建的控件生成巨大的ID标记,例如: “ctl00\u ctl00\u主体\u ctl00\u LBL说明” 对于我创建的LBL描述标签 有没有办法减少这种混乱如何最小化ASP.NET页面的重量?,asp.net,optimization,seo,Asp.net,Optimization,Seo,我严重依赖web门户中的嵌套母版页,这会导致ASP.NET为其创建的控件生成巨大的ID标记,例如: “ctl00\u ctl00\u主体\u ctl00\u LBL说明” 对于我创建的LBL描述标签 有没有办法减少这种混乱 除了删除viewstate之外,还有什么其他减轻页面重量的技术(抱歉太笼统了?只要可能,请使用HTML控件。HTML控件。它们更轻,因为除非您指定runat=“server”属性,否则没有服务器端对象。我不知道如何删除客户端id膨胀,但一些使页面更小的一般提示如下: 缩小并
除了删除viewstate之外,还有什么其他减轻页面重量的技术(抱歉太笼统了?只要可能,请使用HTML控件。HTML控件。它们更轻,因为除非您指定
runat=“server”
属性,否则没有服务器端对象。我不知道如何删除客户端id膨胀,但一些使页面更小的一般提示如下:
- 缩小并将任何.js/.css合并到一个文件中
- 在页面顶部包含css,在底部包含js(这并不会使页面变小,但UI的加载速度会更快)
几年前,我用这种方法将一些巨大的页面(200K的html)削减到大约30K。事实上,在ViewState上使用自定义压缩通常足以大大减小页面大小。在使用标签的情况下,请确保确实需要使用标签(该标签在
标记中生成文本。您可以使用文字
)
在不需要的控件(或整个页面/网站)上设置EnableViewState=“False”
如果您试图更改ASP.NET生成的模糊ID,那么您在这方面做不了什么。- 看着它,照它说的做(我从这里开始)
- 关闭视图状态
- 用于减小JavaScript文件的大小
- (死链接)
- 使用标准gzip/放气压缩
- 使用将为您提供更小的ID
- 启用IIS静态/动态压缩
- 对控件和页面使用缓存
- Ajax内容加载—当您希望以比优先级较低的内容更快的速度查看主要内容时,它会有所帮助
祝你好运!要最小化ASP.NET页面的重量,还可以覆盖(页面类的)PageStatePersister属性使用SessionPageStatePersister。请参见示例。这样,Viewstate将保留在服务器端的会话对象中,从而减少客户端html页面的大小。特别是在中继器、ListView和GridView中,请将控件命名为简短的名称 从上下文(产品列表)可以看出这一点 如果中继器中只有一个超链接,请将其称为hl。无需将这些控件称为HyperLinkProduct
<asp:Repeater id="rptProducts" runat="server">
<ItemTemplate>
<asp:HyperLink id="hl" runat="server" NavigateUrl='<%# Eval("URL") %>'>
<%# Eval("Name") %>
</asp:HyperLink>
<asp:Image id="img" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' />
</ItemTemplate>
</asp:Repeater>
将这些ID名称乘以100,如果您使用长描述性名称,您的ID将开始占用更多空间。在中继器内部,如果您的中继器名称良好,则短ID应该足够清晰。使用可以通过减少请求数量来加快页面速度。以下是将多个视图的选项卡式浏览分解为同一个网站?为什么会被否决?它有点过时,但它仍然是有效的建议,因为许多人(更老,理所当然)浏览器呈现表格的速度比DIV慢。我很惊讶地看到有多少人使用表格进行布局,并抱怨速度太快。你的答案是正确的-这是关于发出的html。仅供参考,ASP.NET 4支持较小的客户端ID-Yslow实际上在周五下午6点在网站投入生产之前解决了我们的问题。谢谢!
<a id="ctl00_rptProducts_ctrl0_hl" href="/products.aspx?id=5">
Product Name
</a>
<img id="ctl00_rptProducts_ctrl0_img" src="images/5.png"/>