2011-12-11 50 views
1

我正在與jQuery Mobile合作開發移動網站。我知道該框架將頁面放入緩存中,以便它可以在頁面之間進行良好的轉換,減少數據傳輸等等。 但在我的情況下,它很無聊,因爲我認爲它不會在我的頁面執行一些JavaScript。我將解釋:jquery移動頁面緩存有什麼問題?

此頁面顯示帶有日期字段的表單。當焦點位於該字段時,我使用mobiscroll使日期選擇器顯示。

當我提交表單時,如果出現驗證錯誤(我使用codeigniter),服務器重定向到表單(重新填充字段等),然後日期選擇器不再工作。如果我從JS控制檯啓動它,它會再次運行,這讓我認爲JS代碼在返回到表單頁面時不會被重新執行。

我添加了data-ajax="false"作爲窗體的屬性,使其工作(我失去了漂亮的過渡,但我並不在乎)。這是最好的解決方案嗎?

然後,我尋找另一種方式來確定地做到這一點,因爲緩存機制會在其他頁面中出現問題。所以我發現:

$(document).live("mobileinit", function() { 
    $.mobile.ajaxLinksEnabled = false; 
}); 

這應該是完全停用緩存,但事實並非如此。我試圖刪除一些data-ajax="false",然後我遇到了和以前一樣的問題。

那麼頁面緩存機制有什麼問題?爲什麼不$.mobile.ajaxLinksEnabled = false;工作?

謝謝!

+0

我不確定你在問什麼,但這裏是jQuery Mobile頁面緩存的文檔:http://jquerymobile.com/demos/1.0/docs/pages/page-cache.html – Jasper

+0

是的,我看到但我只是不希望jQuery Mobile緩存或預取頁面。 – Alexis

+0

'$ .mobile.page.prototype.options.domCache = false;'是默認值。 – Jasper

回答

1

我能得到

$.mobile.ajaxLinksEnabled = false; 

工作,我的問題是更好地做到

$.mobile.ajaxEnabled = false; 

我沒有加載在正確的順序.js文件。 (請參閱mobileinit事件http://jquerymobile.com/demos/1.0/docs/api/globalconfig.html

但是,我仍然想知道爲什麼我的腳本沒有在每次頁面加載(或任何對於ajax導航系統)執行。