1

html5で小さなtodoアプリを作成しています。これまでのところ正常に動作していますが、問題があります。ユーザーがhttp://www.mydomain.com/にアクセスすると、ログインするように求められます。彼がログオンしている場合/別のテンプレートが提供されます->私のメインアプリケーションテンプレート。さらに、セッション処理用にCookieが設定されています。

これで、彼は自分のToDoを追加/削除/編集できます。彼がオンラインになっている間、todoはサーバーに保存されます。また、自分のサイトにキャッシュマニフェストを追加し、ローカルストレージを使用して、オフラインのときに彼のToDoを保存しました。これは今のところうまく機能します。

私の問題:ユーザーがオンラインでサイトからログアウトし、サーバーがメインアプリケーションテンプレートを提供しなくなった場合、ブラウザーはオフラインバージョンのサイトを使用します。ただし、サーバーが同じパスで別のテンプレートを送信しているときではなく、ブラウザーがオフラインの場合にのみ使用する必要があります。

誰かが私へのヒント?前もって感謝します!

4

1 に答える 1

0

この関数を使用して、クライアント マシンに保存されている Cookie を取得します。null が返された場合は、ユーザーがログアウトされたことを意味します。これは、ページが読み込まれるたびに行う必要があります。ユーザーをログインページにリダイレクトすることもできます。

    var function getCookie(c_name)
        {
        var i,x,y,ARRcookies=document.cookie.split(";");
        for (i=0;i<ARRcookies.length;i++)
        {
          x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
          y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
          x=x.replace(/^\s+|\s+$/g,"");
          if (x==c_name)
            {
            return unescape(y);
            }
          }
        }

var cookie = getCookie("myDomainAuthenticationCookie");

if(cookie == null)
{
window.location.href = "/myDomain.com/Accounts/Login"
}
于 2012-08-08T07:58:19.497 に答える