繁体   English   中英

Asp.net 预取策略?

[英]Asp.net prefetch strategy?

在 /pages/dashboard/default.aspx 的标题中,我包含以下内容:

<link rel="prefetch" href="/pages/agent/statistics/">
<link rel="prefetch" href="/pages/agent/statistics/transactions/">
<link rel="prefetch" href="/pages/agent/consumer/">
<link rel="prefetch" href="/pages/agent/account/">
<link rel="prefetch" href="/pages/feedback/">
<link rel="prefetch" href="/pages/contact/">
<link rel="prefetch" href="/pages/agent/cancel-order/">
<link rel="prefetch" href="/pages/agent/resources/">
<link rel="prefetch" href="/pages/user/preferences/">
<link rel="prefetch" href="/pages/agent/profile/">
<link rel="prefetch" href="/pages/agent/statistics/webservices/">
<link rel="prefetch" href="/pages/agent/statistics/webservices/log/">
<link rel="prefetch" href="/pages/agent/statistics/webservices/error-log/">
<link rel="prefetch" href="/pages/user/download-data/?data-type=Transactions">
<link rel="prefetch" href="/pages/help/">
<link rel="prefetch" href="/pages/agent/resources/">
<link rel="prefetch" href="/pages/about/">

这样做意味着新用户离开主页 (/pages/dashboard/default.aspx) 的导航速度要快得多。 所有这些链接都指向每个文件夹的 default.aspx 页面。

但是在测试时,我会在主页上坐一分钟,以确保所有预取页面都有时间加载。

我正在考虑将所有这些预取链接移动到所有这些页面都使用的 ASP.NET 母版页。 因此,如果新用户仅在主页停留几秒钟,则后续页面可以继续加载预取页面。

这是一个更好的策略吗? 或者它是否会对服务器造成过多的负担,反复请求 aspx 页面,尽管它们的 png/jpeg、css 和 JavaScript 资源是缓存的,但我认为这些页面没有被缓存?

通过预取所有这些页面,您可以通过加载用户可能不会访问的页面来增加服务器流量。 这是否可行是您需要做出的开发决策,它是在具有更高站点响应能力和需要更多服务器能力之间的权衡。 如果您希望每个用户对服务器利用率产生成倍的影响,这取决于您。

每个预取执行它自己的 http 请求,这将需要服务器处理每个请求并运行您的 aspx 页面。 将预取移动到您的母版页除了限制代码重复之外没有任何作用,因为每个页面仍然必须由服务器处理,就像用户直接访问该页面一样。

如果您仍然决定预取所有内容,我建议您将预取链接放在母版页中,因为您只需将它们放在一个文件中。

编辑:

另一个主要缺点是,根据预取页面的范围,如果这些页面上有动态数据,用户可能会看到陈旧的数据,因为您的浏览器将显示预取的版本。 浏览器中可能有防止这种情况发生的机制,但这是我会研究的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM