【问题标题】:JQuery Mobile and JSONPJQuery 移动和 JSONP
【发布时间】:2011-12-15 13:22:41
【问题描述】:

我的 jquery 移动应用程序使用 JSONP 从我们的 mysql 数据库中提取数据。数据很好,但是当我返回应用程序中的上一个“页面”然后单击另一个选项时,问题就来了当我这样做时。我错过了什么?

该应用在任何浏览器中看起来都不正确,但在 ios 模拟器或 appmobi 模拟器中看起来不错。如果需要,我可以发布一些代码,只是知道它在您的浏览器中看起来不正确。

感谢您提供的任何帮助

$('#two').bind('pagecreate',function(event){  

var img = getUrlVars()["st"];
var photo = $('#img');

$.ajax({
  type: 'GET',
  url: 'http://serverhidden/json/img.php?st='+img,
  dataType: 'jsonp',
  success: function(data) {
    $.each(data, function(i,item){
    var image = '<img class="stmap" src="images/states/lrg/'+item.img+' "/>';                  

        photo.html(image);

       });            
     },
        error: function(e) {
        //called if there is an error
       //console.log(e.message);
    }
 });
});

【问题讨论】:

  • 什么是“双倍数据”? dom 可能在“页面”(实际页面?或同一页面上的不同屏幕?)之间保持相同,并且您加载 jsonp 不止一次。
  • 是的,这可能是错误的术语。我的意思是,例如,如果我选择加利福尼亚州,如果我返回并再次单击该州的链接,它将显示加利福尼亚的信息两次。如果我选择另一个州,它只是再次显示加利福尼亚,但现在它显示了 3 次,并且每次都这样添加所有页面都是一个 HTML 页面,所以这就是我使用术语“页面”的原因
  • 这听起来越来越像是每次访问页面时都订阅了一个事件。

标签: ajax jquery-mobile jsonp


【解决方案1】:

确保您没有多次订阅您的活动。这看起来很傻,但很容易做到。

我建议您将日志添加到您的 JQM 站点,以便查看您的站点更新了多少次。

您还应该知道,更新 JQMobile 页面通常需要调用方法以在页面呈现后更新内容。见这里:jQuery Mobile rendering problems with content being added after the page is initialized

希望这些帮助。

【讨论】:

    【解决方案2】:

    因此,如果您的项目没有任何代码,这是在黑暗中拍摄,但您似乎使用pageshow 的信息填充了一个伪页面,并调用了.append()。不要使用.append(),而是使用.html(),因为它将替换已经存在的信息而不是添加到其中。

    如果每个州都有一个单独的页面,那么您可以绑定到pagecreate(或类似的)事件,这样数据只会被附加一次,而不是在每个pageshow 事件上。

    【讨论】:

    • 我认为你正在做某事。回头看看我为名为#two 的伪页面添加的代码。它从服务器获取图像并返回到应用程序
    猜你喜欢
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2023-03-24
    • 2012-02-23
    • 2014-02-24
    • 2011-09-13
    • 2013-10-23
    相关资源
    最近更新 更多