0

我正在使用jQuery Mobile,HTML5和PhoneGap Build來創建跨平臺應用程序。我們的目標平臺包括Symbian^3。使用jQuery Mobile和PhoneGap的Symbian^3上的會話存儲構建

我需要能夠跟蹤某些會話數據,例如用戶的ID和他們是否已登錄。當談到這一點時,Symbian很痛苦,因爲我嘗試過的解決方案似乎沒有一個可以工作。

我已經試過:

  • HTML5的sessionStorage與localStorage的。這兩種方式都會導致Symbian應用程序在被調用時立即凍結。
  • 餅乾。即使您在設置它們後立即訪問它們,它們總是會返回「未定義」。
  • 全局變量。我已經創建了一個.js文件,其中定義了一些用於整個應用程序的var。該腳本包含在可能需要的每個HTML文件的頭部。不幸的是,這不起作用,因爲當您在頁面之間切換時會重新定義變量,從而丟失會話數據。

我已經達到了通過網絡搜索和實驗所能達到的極限,所以我在這裏問我的第一個問題。我很樂意上傳一些代碼示例,但實際上並沒有太多的展示。

至於實際問題:我如何在Symbian上的jQuery Mobile應用程序中創建會話上下文,以便它在頁面轉換中保持不變?

回答

0

您需要了解JQM的工作方式。當您從頁面A開始並轉到頁面B時,您並不真正離開頁面A.而是JQM AJAX-請求頁面B,將<div data-role="page"></div>以外的所有內容剝離並將其附加到DOM。

這意味着您的DOM將始終保持「活躍」,無論您的應用程序在哪裏(除非您在鏈接上設置了data-ajax="false")。因爲文件只能在頁面A上加載(並在頁面B,C,D ...上被刪除),所以你的選項3-全局變量 - 應該可以工作。如果變量被覆蓋,那將是因爲你可能覆蓋它們 - 你需要顯示a.js裏面的內容。

另一種選擇是附加應直接堅持到DOM的信息,或者使用data()api),如:

$('html').data("foo": bar) 

,或者如果它不是那麼多的信息,只是用一個數據屬性

$('html').jqmData("some","thing"); 
+0

謝謝你的幫助。建議的方法適用於其他平臺,但Symbian仍然存在問題。這可能是因爲該平臺沒有正確支持AJAX導航。我們決定爲Symbian做原生開發。 – Iyashu5040 2013-04-19 09:52:32