-2

JQUERY MOBILE ページが更新されるとどうなりますか? ユーザーが動的に生成された特定の要素をクリックすると、 ajax を使用してpage1
の 「json」という変数にデータをフェッチし、クリックした要素の ID をセッション変数に保存し、リストの生成に使用する新しい JQM page2に保存します。すべてが正常に機能し、戻るボタンと進むボタンも完全に機能しますが、ページ 2 を更新すると未定義 に なり、次のエラーが表示されます。changePage()json.thepropertyiwantjson.thepropertyiwant

Uncaught TypeError: Cannot read property 'responseData' of undefined

単一の html5 ページ モデルでマルチページを使用しています

編集:

  • 私は変数名を使用しましたが、強調するためにそのように入力しただけjsonではありませんJSONが、今ではそれはばかげていると思います!
  • 私も自分の問題を理解しました。私の間違いは、ページの更新によってpageinit現在のページが呼び出されると想定していたことですが、通常の html ページの更新と同じように機能し、 document.ready毎回、現在pageinitのページに対してトリガーされます。
    イベントをリッスンして、 pagerefreshその通常の機能をオーバーライドする方法はありますか?
4

2 に答える 2

0

うーん...ここでいくつかの問題が発生しています。

  • まず、「JSON」という変数を使用しないでください。それは良くありません。JSON の解析とエンコードに使用される JSON というグローバル オブジェクトが既に存在します。うっかり上書きしてしまう可能性があります。

  • あなたが発見したように、JavaScriptの変数にデータを保存すると、その変数は現在のページのメモリにのみ存在します。ページを更新すると、その変数はメモリ内になくなります。

    しかし、それは jQuery Mobile とはまったく関係ありません。これが Web ブラウザーのしくみです。メモリ内に作成された JavaScript 構造は、ページの更新間で保持されません。

    通常、ページの更新間でデータを保持するには、localStorage または Cookie を使用してデータを自分で保存する必要があります。

  • いずれにせよ、通常、jQuery Mobile アプリを更新することはありません。したがって、前の点は一般的にあまり問題ではありません。ユーザーがページを更新することは、アプリを再起動することに似ています。

    アプリは、起動時に、必要なデータ (localStorage や Cookie など) を再読み込みするか、新しい ajax 呼び出しを行って再読み込みする必要があります。そのロジックをプログラムする必要があります。

于 2013-07-24T07:06:41.200 に答える
0

何らかのイベントで page2 の動的コンテンツを生成すると思います。イベントは pageinit または pagecreate だと思います。これらのイベントは 1 回だけ発生します (ajax ページの読み込みが true に設定されている場合)。page1 をロードするときにデータを要求するとどうなりますか (pageinit のようなものですか?) page2を更新すると、page1はそれとは何の関係もありません。データをリクエストするコードのセクションと、ページ 2 の動的コンテンツを生成するセクションを投稿してください。

于 2013-07-24T06:48:24.340 に答える