我正在学习 Chrome 和 Native Client。
基本上我想增加
由 chrome 预渲染的页面数量(现在它只有一页)。
我正在考虑创建一个
允许预渲染更多页面的扩展。
这是一种可行的方法,还是我将其硬编码到 Chrome 中并从头开始构建?
编辑
我为这个问题开始了赏金。我真的很感激一些意见。
3 回答
不,没有办法,您需要在 Chrome 中对其进行硬编码并按照您的说明进行重建。
您可能已经知道,Chrome 明确声明他们目前限制了可以预渲染的页面数量:
每个 Chrome 实例最多只能预呈现一个 URL(不是每个选项卡一个)。在某些情况下,此限制将来可能会发生变化。
他们支持的 API或他们的实验性 API中没有任何内容可以让您访问修改它。目前在 Chrome 中chrome://settings/
或chrome://flags/
其他任何地方都没有允许您更改此设置的切换。但是,您可以使用Page Visibility 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 扩展程序通过搜索link
定义 a 的标签来结合这两种方法prefetch
,然后创建隐藏的 iframe,从而导致资产被下载和缓存。
如果目标是针对浏览您的站点优化客户端性能,可能还有其他替代方案,例如创建使用单页应用程序 (SPA)开发风格的 Web 应用程序,以减少加载和执行 JS 和 CSS 的次数。如果您是 Google 的粉丝,那么您可以查看他们用于构建称为AngularJs的 SPA 的框架。
如果预渲染更多页面是个好主意,Chrome 可能已经这样做了。预渲染太多页面会耗尽网站带宽,最终可能会减慢整个网络的速度,这与您想要实现的目标相反。所以很可能是故意的,你只能预渲染一个页面,你不应该尝试破坏它。
不可能。Chrome 管理基于许多因素的预渲染。如果这是可能的,它也很容易被许多网站滥用。根据您的页面,您可以将所有内容保留在一页上。