【问题标题】:How to force Chrome to prerender more pages?如何强制 Chrome 预呈现更多页面?
【发布时间】:2013-04-24 14:09:39
【问题描述】:

我正在学习 Chrome 和 Native Client。
基本上我想增加预渲染的页面数量
通过 chrome(现在只有一页)。

我正在考虑创建一个扩展
允许预渲染更多页面。

这是一种可行的方法,还是我将其硬编码到 Chrome 中并从头开始构建?

编辑
我开始为这个问题悬赏。非常感谢您的意见。

【问题讨论】:

  • 谁能指出我正确的方向?

标签: google-chrome google-chrome-extension google-nativeclient


【解决方案1】:

不,没有办法,您需要在 Chrome 中对其进行硬编码并按照您的说明进行重建。

您可能已经知道,Chrome explicitly states 他们目前限制了prerendered 的页面数量:

Chrome 只会在每个 Chrome 实例中最多预呈现一个 URL(而不是每个标签一个)。在某些情况下,此限制将来可能会发生变化。

他们的supported API'sexperimental API's 中没有任何内容可以让您修改它。 chrome://settings/chrome://flags/ 或当前 Chrome 中的其他任何地方都没有允许您更改此设置的切换。但是,您可以使用Page Visibility API 来确定是否正在预呈现页面。

除了您使用<link rel="prerender" href="http://example.org/index.html"> 指定的页面上的一个资源之外,您还可以考虑使用prefetching 资源。

预取的问题是它只会加载指定 URL 的顶级资源。因此,如果您尝试预取其他页面,如下所示:

<link rel="prefetch" href="http://example.org/index.html">

...那么只会预取index.html 资源,而不是文档中包含的所有 CSS 和 JavaScript 链接。一种方法是为页面中包含的所有资源写出link 标签,但这可能会变得混乱且难以维护。

另一种方法是等待当前页面完成加载,然后使用隐藏在页面外的JavaScript to create an iframe,针对您要为其预取所有资产的 URL。然后浏览器会加载该 URL 的所有内容,当用户访问该页面时,这些内容会在用户的缓存中。

还有一个Chrome extension 结合了这两种方法,方法是搜索定义prefetchlink 标签,然后创建隐藏的iframe,从而下载和缓存资产。

如果目标是围绕浏览您的网站的客户端性能进行优化,则可能还有其他选择,例如创建一个使用 Single Page Application (SPA) 开发风格的 Web 应用程序,以减少加载和执行 JS 和 CSS 的次数。如果您是 Google 的粉丝,那么您可以查看他们的称为 AngularJs 的 SPA 构建框架。

【讨论】:

    【解决方案2】:

    如果预渲染更多页面是个好主意,Chrome 可能已经这样做了。预渲染太多页面会耗尽网站带宽,最终可能会减慢整个网络的速度,这与您想要实现的目标相反。所以很可能是故意的,你只能预渲染一个页面,你不应该尝试破坏它。

    【讨论】:

      【解决方案3】:

      不可能。 Chrome 管理基于许多因素的预渲染。如果这是可能的,它也很容易被许多网站滥用。根据您的页面,您可以将所有内容保留在一个页面上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-01
        • 2021-09-11
        • 2019-09-27
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 2020-03-29
        • 1970-01-01
        相关资源
        最近更新 更多