如何强制Chrome预呈现更多页面?

时间:2013-04-24 14:09:40

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

我正在了解Chrome和Native Client 基本上我想增加预渲染的页数 通过铬(现在只有一页)。

我正考虑创建一个扩展程序 允许预呈现更多页面。

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

修改 我开始对这个问题表示赏心悦目。我真的很感激一些意见。

3 个答案:

答案 0 :(得分:5)

不,没有办法,你需要在Chrome中对其进行硬编码并重建,如你所说。

正如您可能已经知道的那样,Chrome explicitly states他们目前限制了可以prerendered的页数:

  

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

他们的supported API's或他们的experimental API's中没有任何内容可以让您修改此内容。目前,Chrome中chrome://settings/chrome://flags/或其他任何地方都没有切换,您可以更改此设置。但是,您可以使用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通过搜索定义link的{​​{1}}标记然后创建隐藏的iframe来结合这两种方法,从而导致资产被下载和缓存。 / p>

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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