コードに問題があります。そして、誰かが私の脳にそれを解決する方法についてのいくつかの指針を与えることができるかどうかを確認するために、私はこのウェブサイトの偉大な心と私の問題を共有すると思いました。
私はアプリ(JQuery、PhoneGap)に取り組んでおり、ログイン機能があります。ログイン機能は、ログイン資格情報をWebサービスに送信します。だから私はJQUeryajaxを使ってそれを送っています。Webサービスには、クライアントがデータを取得できるようにするfetchData関数も含まれています。Webサービスは、私が現在ログインしているかどうか、およびセッションがタイムアウトしていないかどうかを確認します。タイムアウトが発生した場合は、再度ログインする必要があります。そして、もう一度やり直してください。これは、ユーザーには決して表示されないものです。loginUser()は、私のコードで他の多くの場合に使用される関数です。だから、あまりいじりたくないので、たくさんの変更を加える必要があります。
だからここにいくつかの疑似コードがあります:
function loginUser()
{
$.ajax(
{
....
success: function(data,status)
{
//everything worked great
return true;
},
error: function(data,status)
{
//display some user error stuff.
return false;
},
});
}
function getData()
{
$.ajax(
{
...
success: function(data,status)
{
//everything worked great. No need to login user again.
},
error: function(data,status)
{
//Opps user needs to login again and then we need to try again.
//If we have tried to getData after we tried to login (and got succeess from the loginUser() function)....report error.
//Below code will not work. But it will show you roughly what i am trying to do. It will also create an infinite loop.
if (loginUser())
{
getData();
}
},
});
}