2012-03-09 4 views
1

を更新ブラウザ上でXMLデータを失います。これは正常に動作します。デフォルトの内部ページで画面を更新すると、問題なく再ロードされます。私は1〜2ページ深く行くことができます、バックボタンを押して...そしてそれも同様に動作します。私は私のハッシュの履歴を維持するためにこのコードを使用しています(私はnoobです)。私は別のページに移動して、リフレッシュを打ったときjQueryのは、私はこのような複数の内部ページを持つアプリケーションを構築しました

$(document).bind("pagebeforechange", function(e, info) { 
    if (typeof info.toPage === "string") { 
     var u = $.mobile.path.parseUrl(info.toPage), 
      re = /^#.../; 

     if (u.hash.search(re) !== -1) { 
      buildLists(u, info.options); 
      e.preventDefault(); 
     } 
    } 
}); 

問題が表示され、私のデータは不定と私のdata.findのすべてとして戻ってくる(...)呼び出しはエラーを投げ、無効となります。

誰でもこの問題がありましたか?私のデータがa)保持されているかb)再ロードされているかを確認するにはどうすればよいですか?私が紛失しているものはありますか?

私はthis codeを調べましたが、これは必要なほど動的ではありません。私のすべてのリストビューは、XMLを介して作成されます。

+0

ウェブアプリケーションはステートレスです... – gdoron

+0

は@gdoronに同意します。あなたのUI設計を見直す必要があると思います。 –

+0

フィードバックいただきありがとうございます。私はあなたがUIデザインを見直して何を意味するか分からない。例を教えてください。また、通常はクッキーを介して変数を追跡し、セッションの最後の「状態」を正常に再構築しますか? – TSNev

答えて

1

あなたは間違ったイベントを聞いています。ハッシュを変更するとpagebeforechangeがトリガーされます。ハッシュが変更されたときに、ブラウザがそれを設定したときと同じように、変更する必要があります。 「ハッシュチェンジ」を聞きなさい。ライブラリは実際の技術を隠しているので、jQueryを使わずにこれらのことをする方法を学ぶことをお勧めします。

これでうまくいかない場合は、jQueryを使用しないでください(私はそれを使用しないことを嫌い、自分のサイトはすべてのデバイスで動作します)。これを行うには他にもたくさんの方法があります。ここには次のものがあります。http://www.davidpirek.com/blog/on-hash-change-javascript-listener

+0

ありがとうございます。それは大いに役立ちます。 – TSNev

関連する問題