2011-07-22 25 views
2

我正在構建iOS應用程序,使用jQuery mobile和Phonegap。 我建立網站並在PC瀏覽器中測試,所以我把後端代碼(使用Ruby)放在html文件中,所以當jQuery加載頁面時(使用$ .mobile.changePage()),數據將從服務器獲取並呈現模板文件(服務器上的所有文件)。這是更好的方式來加載頁面內容在jQuery手機和Phonegap?

但是,當我把代碼放在Phonegap中時,index.html文件現在在本地,是我唯一的方式來獲取服務器端的數據是做一個AJAX請求來獲取json並插入到頁面?或者其他方式表現更好?

而jquery mobile使用$ .mobile.changePage()來改變頁面使用AJAX請求,所以如果我確實請求獲取數據,$ .mobile.changePage()函數只做轉換,因爲它沒有爲我加載任何數據。

回答

2

Ajax請求是加載遠程內容的好方法。如果您想在顯示網頁的加載內容做這樣的事情:

$(document).delegate('[data-role="page"]', 'pageshow', function() { 
    $.get('http://domain.com/path_to_script.php?id=blah', function (data) { 
     $(this).children('[data-role="content"]').html(data); 
    }); 
}); 

注意:這個例子中預計,非本地腳本將輸出HTML準備插入到DOM。您可以接收任何您想要的數據類型,然後根據需要進行解析;數據變量返回來自ajax請求的響應。

+0

「this」是jquery mobile **的全部內容。**但[看到他們試圖在文檔中使用大而粗體的字母很搞笑](http://jquerymobile.com/demos/1.0a4。 1/docs/pages/docs-navmodel.html)來錘擊這些想法離開迷惑的羣衆......當他們甚至沒有得到它!哈!不,但是對於真實而言,這很重要,而且令人困惑......你的回答對我說。「你明白了」。但是,你還可以添加更多嗎?我仍然對如何從服務器載入一個完整的'

'片段感到困惑,就像它從另一個「頁面」上的div一樣。 –

+1

@alexgray你可以''將'data-role ='page''元素及其內容'放入''body'元素。然後,如果使用'click'事件處理程序通過'$ .mobile.changePage()'函數將用戶引導到新頁面,則jQuery Mobile框架將初始化並轉換到新的'data-role =「頁面。元件。這是一個jsfiddle demnstration:http://jsfiddle.net/nbpdy/1/ – Jasper

相關問題