【问题标题】:Load html content of master page in next pages在下一页中加载母版页的 html 内容
【发布时间】:2014-03-26 10:42:08
【问题描述】:

我有一个要求,我想提高页面的性能,因为我的母版页加载了大量从数据库中获取的控件。

我想保存母版页的 HTML 输出,以便我可以使用 HTML 加载到使用母版页的其他页面,从而减少加载页面所花费的时间。

有可能吗?如果可能的话,任何参考。

我在网上搜索过相同的内容,但可能会得到一些不相关的内容。

【问题讨论】:

  • 你的意思是像include这样的东西吗?
  • 听起来你应该研究一下数据库缓存。
  • 查看link
  • 我不想再次显示同一页面的 html。不应一次又一次地加载具有 asp 控件的母版页。就我而言,我有用于菜单控件的中继器以及用于页脚和左侧菜单的内容。因此,对于任何页面,我都必须使用 html 生成的母版页,而不是使用实际的。

标签: c# html asp.net master-pages


【解决方案1】:

您可以通过使用缓存功能来提高 ASP.net 应用程序的性能

您可以通过在masterpage cs文件中添加以下行来增加master page的缓存

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.Now.AddMonths(1));
        Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
        Response.Cache.SetValidUntilExpires(true);
    }

保存 html 不是一个好主意

【讨论】:

  • 我只想为母版页的内容保存 html,并将其绑定到剩余页面。再次加载同一页面时,缓存会有所帮助。我希望它用于使用母版页的任何其他页面。
  • 我认为保存 html 并将其放在其他页面中是一个困难的过程
  • 但这是我的要求,因为我的页面性能很差,需要将近 15-20 秒才能加载所有页面中的重复内容。
  • 使用sigleton对象只能调用一次数据库
【解决方案2】:

使用Asp.Net Output Caching可以缓存整个页面或页面片段(用户控件)。

ASP.NET 允许您缓存部分或全部由 一个 ASP.NET 页面,在 ASP.NET 中称为输出缓存。你可以 在发出请求的浏览器中缓存页面,在 Web 服务器上 响应请求,以及在任何其他支持缓存的设备上, 例如请求或响应流中的代理服务器。 缓存为您提供了一种强大的方式来提高性能 您的 Web 应用程序。缓存允许对页面的后续请求 从缓存中得到满足,所以最初创建的代码 页面不必再次运行。缓存您网站的最 经常访问的页面可以大大增加您的 Web 服务器的 吞吐量,通常以每秒请求数来衡量。

这是一个小例子,只是为了解释它是如何工作的:

为了缓存页面的输出,使用页面顶部的@OutputCache 指令:

<%@ OutputCache Duration=5 VaryByParam="None" %>
  • 持续时间 - 应缓存输出的时间(以秒为单位)。在指定的持续时间过去后,将删除缓存的输出并为下一个请求生成页面内容。该输出将再次缓存 5 秒,然后重复该过程。
  • VaryByParam - 此属性是强制性的,它指定查询字符串参数以改变缓存。要指定多个参数,请对通过查询字符串传递的所有参数使用分号或 *

【讨论】:

  • 我只想将母版页内容保存在 html 中,以便在其他页面中使用。
  • @Cassini 如果你缓存一个页面,母版页也会被缓存
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 2011-02-21
  • 2012-09-05
  • 1970-01-01
相关资源
最近更新 更多