2

ログインページがあり、ユーザー情報を保存したいと考えています。ユーザーが null の場合、ユーザーをログイン ページに送ります。それ以外の場合、ユーザーは引き続きアプリケーションを使用します。

$.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);

});

私の問題はここから始まります。私var obj//user infoはjavascriptの先頭で使用しますが、ページが変更されるとnull.

なぜヌルなのですか?(JavaScriptをよりよく学ぶため)そして問題を解決する方法は?

次に、ログイン中にログインページをロードしないように「戻る」ボタンを制御する方法は? 例が見つかりませんでした。よろしくお願いします。(localStorage は使いたくない)

4

1 に答える 1

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
    }

他のページでは、この localstorage オブジェクトを確認できます。null の場合、ページをログイン ページに変更します。

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

また、indexedDb https://developer.mozilla.org/en/docs/IndexedDBをチェックすることをお勧めします。

于 2013-10-02T18:26:42.300 に答える