我正在了解Chrome和Native Client
基本上我想增加预渲染的页数
通过铬(现在只有一页)。
我正考虑创建一个扩展程序
允许预呈现更多页面。
这是一种方法还是我将其硬编码到Chrome中并从头开始构建?
的修改
我开始对这个问题表示赏心悦目。我真的很感激一些意见。
答案 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根据许多因素管理预渲染。如果这是可能的,它也可能很容易被许多网站滥用。您可以根据您的页面将所有内容保留在一个页面上。