2013-10-02 106 views
2

我有一個登錄頁面,我想存儲用戶信息。 如果用戶爲空,則將用戶發送到登錄頁面,否則用戶將繼續使用應用程序。phonegap登錄頁面,如何保留用戶信息

$.mobile.changePage("index.html"); 

我的代碼是:

var obj; //user information (json) 
$(document).ready(function(e) { 
$("#btnlogin").click(function(){ 
      var username=$("#lusername").val(); 
      var password=$("#lpassword").val(); 
     $.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "Service1.asmx/Giris", 
     data: "{'kullaniciadi':'"+ username+"' , 'sifre': '"+password+"'}", 
     dataType: "json", 
     success: function(msg) { 



      obj = jQuery.parseJSON(msg.d); 
      if(obj!=null) 
      { 
       $.mobile.changePage("index.html"); 
      } 
      else alert("not found"); 

           }, 
     error: function (xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(thrownError); 
     } 



     }); 
    }); 
}); 

因爲我使用$.mobile.changePage("index.html");我可以在每個頁面使用相同的Java腳本,我使用的警報和我的作品

$('#illnessDetailsPage').live('pageshow', function(event) { 
    alert(user); 

}); 

我的問題從這裏開始,我在JavaScript的頂部使用var obj//user info,但當頁面發生更改時,它會返回null

爲什麼它是空的? (更好地學習JavaScript)以及如何解決問題?

那麼如何控制'後退'按鈕在登錄時不加載登錄頁面?我沒有找到任何例子, 謝謝你提前。 (我不想使用localStorage)

回答

4

無論何時加載頁面,都會再次加載資源。這基本上意味着您存儲在JavaScript變量中的信息將會丟失。

現在來解決您的問題,因爲您使用phonegap,因此您的應用程序將運行在基於webkit的瀏覽器上。所以我建議你使用localStorage。

在登錄成功函數中,您可以設置userInfo。

$("#btnlogin").click(function(){ 
     var username=$("#lusername").val(); 
     var password=$("#lpassword").val(); 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "Service1.asmx/Giris", 
    data: "{'kullaniciadi':'"+ username+"' , 'sifre': '"+password+"'}", 
    dataType: "json", 
    success: function(msg) { 
      localStorage.setItem('userInfo', msg.d); 
      //Your code here 
    } 

在其他頁面中,您現在可以只檢查此本地存儲對象。如果它爲空,則將頁面更改爲登錄頁面。

if(localStorage.getItem('userInfo') == null){ 
    $.mobile.changePage('login.html'); 
} 

我也建議你檢查出IndexedDB的 https://developer.mozilla.org/en/docs/IndexedDB

相關問題