2

我在學習Chrome和Native Client。
基本上我想增加鉻(現在它只是一個頁面)預渲染
的頁數。

我在考慮創建一個擴展名,它允許
允許預渲染更多頁面。

這是一種方式,還是我留下了硬編碼到Chrome和從頭開始構建?

編輯
我開始了這個問題的賞金。我真的很感激一些意見。如何強制Chrome預渲染更多頁面?

+0

任何人都可以指出我對這個方向正確嗎? – Chris 2013-04-25 12:24:32

回答

5

不,沒有辦法,您需要在Chrome中對其進行硬編碼並重新編譯。

正如你可能已經知道,Chrome explicitly states,他們目前限制可以prerendered頁數:

的Chrome只會在每個Chrome實例最多一個URL(每片不是一個)預渲染。在某些情況下,此限制可能會在未來發生變化。

在他們的supported API's或他們的experimental API's中沒有任何內容可以讓您訪問修改此內容。目前在chrome://settings/chrome://flags/或Chrome中的其他任何地方都沒有切換,可以讓您更改此設置。但是,您可以使用Page Visibility API來確定頁面是否正在預渲染。

除了使用<link rel="prerender" href="http://example.org/index.html">指定的頁面上的資源之外,還可以考慮prefetching資源。

預取問題是它只會加載指定網址的頂級資源。所以,如果你想預取其他頁面,就像這樣:

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

...那麼只有index.html資源將被預取,不是所有的文檔中containeed的CSS和JavaScript鏈接。一種方法可能是爲頁面中包含的所有資源編寫link標籤,但這可能會變得混亂且難以維護。

另一種方法是等待當前頁面完成加載,然後使用隱藏在頁面之外的JavaScript to create an iframe針對您要預取所有資源的URL。然後,瀏覽器將加載URL的所有內容,並在瀏覽頁面時將其放入用戶的緩存中。

還有一個Chrome extension,它通過搜索定義prefetchlink標籤並結合這兩種方法,然後創建隱藏的iframe,導致資產被下載和緩存。

如果您的目標是圍繞您的網站進行導航的客戶端性能進行優化,則可能會有其他選擇,例如創建一個使用Single Page Application (SPA)開發風格的Web應用程序來減少加載和執行JS和CSS的次數。如果您是谷歌的粉絲,那麼您可以查看他們構建SPA的框架,名爲AngularJs

0

不可能。 Chrome根據許多因素管理預渲染。如果這是可能的話,它也可能很容易被許多網站濫用。根據您的頁面,您可以將所有內容保留在一個頁面上。

1

如果預渲染更多頁面是一個好主意,Chrome可能已經做到了。預渲染太多頁面會浪費網站帶寬,並可能最終導致整個網絡的速度變慢,這與您嘗試實現的目標相反。所以最有可能的是,您只能預先渲染一個頁面,而不應該試圖破壞它。