2013-02-12 47 views
0

我有一個網站,它由一堆單頁面模板jQuery Mobile頁面組成,這些頁面之間使用相互鏈接預取和緩存。所有頁面都存在於DOM中(在預取之後)。爲什麼jQuery Mobile預取的「單頁」頁面的工作方式與「多頁」頁面完全一樣

這適用於我的桌面瀏覽器。但是,當我使用我的HTC EVO 3D Android手機(無論是默認瀏覽器還是Opera瀏覽器)瀏覽我的網站時,頁面之間的切換就像我正在進入外部頁面一樣。換句話說,瀏覽器的地址欄會立即出現,然後頁面變白,然後加載新頁面,然後地址欄消失。

我期望的行爲與多頁面模板完全相同。例如,如果您在jQuery Mobile文檔中瀏覽多頁面模板,則可以非常順利地從一個頁面切換到另一個頁面。瀏覽器地址工具欄不會彈出,頁面之間也不會出現白色閃爍。但是,如果您瀏覽「持久工具欄」示例(使用預取來加載示例中的所有頁面),則會看到與我的網站所經歷的行爲相同的行爲。瀏覽器的地址欄將出現,頁面將變成白色,下一頁將呈現,然後地址欄將消失。

那麼,如何讓我的預取頁面像多頁面模板一樣工作,而不必重寫我的網站以使用多頁面模板?

僅供參考,這裏是jQuery Mobile的持續性工具欄的演示和多頁的演示,我認爲應該工作完全一樣的(關於URL地址欄出現的):

http://jquerymobile.com/demos/1.3.0-rc.1/docs/toolbars/footer-persist-a.html

http://jquerymobile.com/demos/1.3.0-rc.1/docs/pages/multipage-template.html

回答

0

除非您的初始頁面直接鏈接到您的所有其他頁面,並且您的<a>鏈接標記上的data-prefetch屬性不會被預取和緩存。我聲明這是因爲你的問題意味着你的頁面有一些鏈接不受支持。您也可以通過API加載並緩存它們。

$.mobile.loadPage(pageUrl, { showLoadMsg: false });

您能夠真正檢查你的手機在Android設備上的DOM?

基於內存約束,有沒有機會從DOM刷新頁面?我沒有意識到這個場景中的jQM文檔有任何細節,但是在某些時候你會填充緩存。

+0

所有鏈接都具有數據預取屬性。而且,持久頁腳演示鏈接都具有該屬性(下面的URL)。我看過DOM,所有頁面都預取到DOM中。切換頁面時沒有服務器命中......只是地址欄暫時打開。經過更多研究,我認爲它與jQuery Mobile在URL中使用哈希的方式有關。 http://jquerymobile.com/demos/1.2.0/docs/toolbars/footer-persist-a.html – 2013-02-18 13:56:28

+0

你不能修改你的URL在jQM中使用的散列。 jQM使用散列進行導航並保持瀏覽器歷史記錄。 – andleer 2013-02-18 17:36:16

+0

是的,我不想惹JQM的導航或歷史。我的問題依然存在。 – 2013-02-19 02:59:59