jquery移动页面在ajax响应负载上波动


jquery mobile page fluctuating on ajax reponce load

我正在使用一个移动应用程序,其中第一页有

Html

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

当用户点击"li"时,他/她进入下一个页面,该页面将通过Ajax检索与所选"li"相关的数据。这几乎进展顺利。。

但当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>

您需要更改处理页面更改和AJAX调用的方式。

我从您的问题中了解到,在单击LI元素后,页面更改被初始化,AJAX调用被发送到PHP服务器。

你需要改变这种逻辑。页面波动是由AJAX调用引起的,该调用在从一个页面转换到另一个页面的过程中执行。

可以这样修复:

  • 在第一页上,从列表元素中删除HREF属性
  • 向每个列表元素添加一个单击事件
  • AJAX调用应在单击事件时执行,同时显示自定义加载程序(或使用默认加载程序)
  • 当检索服务器端数据时,您需要存储它,以便可以从另一个页面访问它。在这里,您可以找到我的另一个答案,在那里您可以找到在页面转换期间存储数据的各种方法,或者在这里找到它,只需搜索一章,名为:页面转换之间的数据/参数操作(您最好的选择是localstorage
  • 使用changePage函数初始化页面更改
  • pagebeforeshow事件期间(页面尚未显示),将新数据附加到新容器
  • 当第二页最终显示时,一切都会在那里