2012-11-19 35 views
0

IM開發了基於JQM和本地存儲移動應用jQuery Mobile的 - 展後本地存儲頁面就緒

您可以在這裏查看:

clients/app2u/Apps/6/home.html 
clients/app2u/Apps/6/gallery.html 
clients/app2u/Apps/6/categories.html 

等」

地方存儲包含每個頁面的數據(例如:「app2u_app6_home」)和一個常規標籤數據(「app2u_app6_Tabs」)

問題是,首次訪問該頁面時,頁面加載在數據完全加載之前,只有刷新頁面時頁面纔會包含數據。

如何在本地存儲準備好後才能強制顯示頁面?

+0

你應該在這裏發佈你的HTML/JavaScript代替鏈接 –

回答

0

注:我假設您指的是您網站上的functions.jsgetPageData函數。

你的問題是$.post調用是異步的(不同於調用localStorage.getItem),所以你的getPageData函數不能立即返回。

相反,你應該重構它接受一個回調函數:

function getPageData(page,wait,extra_data,callback) { 
    if (localStorage.getItem(unique_param+page)) { 
     callback(localStorage.getItem(unique_param+page, extra_data)); 
    } else { 
     if (typeof(extra_data) == 'undefined') {extra_data = '';} 
     $.post(server_path + 'index.php?module=API&pname=' + page + '&pmode=empg&application_id=' + application_id + extra_data, 
       function(response) { 
        localStorage.setItem(unique_param+page,JSON.stringify(response)); 
        callback(response); 
       } 
     ,'json' 
     ); 
    } 
} 

使用這種方法,你的代碼會一直等要麼調用本地存儲或調用服務器來完成