0

最初のページにあるモバイルアプリケーションを使用しています

HTML

    <ul>
    <li>121212</li>
    <li>123233</li>
    <li>232323</li>
    <li>4323423</li>
    <ul>

ユーザーが「li」をクリックすると、次のページに入力され、選択した「li」に関連するデータが 経由で取得されますAjax。これはほぼ順調です..

しかし、Ajax応答が来ると、ページは2回変動します。一度ページが読み込まれ、次回はページが完全に白くなり、再びAjax応答のあるページが表示されることを意味します。どうして ???

Jクエリ

 $("clickOnLi").click(function(){
        var id= $(this).val(); //get the selected li value
        $('.loadingGif').css({ 'display':'block' });
        $("#ulShowContent").html(''); // to remove old inner HTML to show new result html
        var dataString = 'selectedid='+id;
        $.ajax({
            type: "POST",
            url: remoteUrl+"handler.php",
            data : dataString,
            cache: true,
            success: function(response) {
                if(response){
                    $('.loadingGif').css({ 'display':'none' });
                    $("#ulShowContent").html(response); 
                }
                }
        });
    })



**and the result will show in this html** 


<ul id="ulShowContent" data-role="listview"> 
    <li class="comment chatsend">
        <div class="comment-meta">
            data 1
        </div>
    </li>

    <li class="comment chatsend">
        <div class="comment-meta">
            data 2
        </div>
    </li>
</ul>
4

1 に答える 1

1

ページ変更とAJAX呼び出しの処理方法を変更する必要があります。

あなたの質問から私が理解したことは、LI要素をクリックした後、ページ変更が初期化され、AJAX呼び出しがPHPサーバーに送信されることです。

このロジックを変更する必要があります。AJAXページの変動は、あるページから別のページへの遷移中に実行される呼び出しによって引き起こされます。

これは次のように修正できます。

  • HREF最初のページで、リスト要素から属性を削除します
  • すべてのリスト要素にクリック イベントを追加する
  • AJAXクリックイベントで呼び出しを実行し、同時にカスタムローダーを表示する(またはデフォルトのものを使用する)必要があります
  • サーバー側のデータが取得されたら、別のページからアクセスできるように保存する必要があります。ここでは、ページ遷移中にデータを保存するさまざまな方法を見つけることができる私の他の回答見つけるか、ここで見つけることができます.localstorage
  • changePage関数でページ変更を初期化する
  • イベント中pagebeforeshow(ページはまだ表示されていません)、新しいコンテナに新しいデータを追加します
  • 2ページ目が最終的に表示されると、すべてがそこにあり、
于 2013-02-22T09:09:22.260 に答える