如何强制Chrome预渲染更多页面?

3

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

我考虑创建一个扩展程序,允许预渲染更多页面。

这是可行的方法,还是只能硬编码到Chrome中并从头开始构建?

编辑
我为这个问题提供了悬赏。我真的很希望得到一些意见。


有人能指导我正确的方向吗? - Chris
3个回答

5
没有办法,你需要像你提到的那样在Chrome中硬编码并重新构建。正如你可能已经知道的那样,Chrome明确表示他们目前限制了可以预渲染的页面数量:

Chrome每个实例(而不是每个标签页)最多只会预渲染一个URL。在某些情况下,这个限制可能会在未来发生改变。

他们的支持的API或者实验性API中没有任何可以让你修改这个的内容。在chrome://settings/chrome://flags/或Chrome的其他地方,目前都没有开关可以让你改变这个。不过,你可以使用页面可见性API来确定一个页面是否正在预渲染。
除了通过<link rel="prerender" href="http://example.org/index.html">指定的页面资源外,你还可以考虑预取资源
预取的问题在于它只会加载指定URL的顶级资源。所以,如果你试图预取其他页面,像这样:
<link rel="prefetch" href="http://example.org/index.html">

如果只预取index.html资源,而不是文档中包含的所有CSS和JavaScript链接,则可以采用一种方法,即在页面中编写link标签以包含所有资源,但这可能会变得混乱且难以维护。
另一种方法是等待当前页面完成加载,然后使用JavaScript创建iframe,将其隐藏在页面外部,定向到要预取所有资产的URL。然后,浏览器将加载URL的所有内容,并在用户访问页面时将其缓存在用户缓存中。
还有一个Chrome扩展程序,它结合了这两种方法,通过搜索定义prefetchlink标记,然后创建隐藏的iframe,导致资产被下载和缓存。
如果目标是优化客户端在您的网站上导航的性能,可能会有其他选择,比如创建一个使用单页应用程序(SPA)开发风格的Web应用程序,以减少JS和CSS加载和执行的次数。如果你是Google的粉丝,那么你可以查看他们构建SPAs的框架AngularJs

1
如果预渲染更多页面是一个好主意,Chrome可能已经这样做了。预渲染太多页面将耗尽网站带宽,并可能导致整个网络变慢,这与您想要实现的相反。因此,只能预渲染单个页面很可能是有意的,您不应该试图打破这一点。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接