【问题标题】:jQuery mobile refresh buttonjQuery 移动刷新按钮
【发布时间】:2011-05-26 11:38:35
【问题描述】:

我在向数据库中添加新内容时遇到问题,页面未更新。所以我在考虑添加一个刷新按钮。

希望我可以这样做吗?

【问题讨论】:

  • 请在您的帖子中don’t use signatures or taglines。您发布的每个帖子都已使用您的标准用户卡“签名”,该卡直接链接回您的用户页面
  • 怀疑window.reload() 不起作用????
  • @Sathya 你说的是哪个签名???

标签: jquery ajax jquery-mobile


【解决方案1】:

您遇到的问题与 jQuery Mobile 缓存页面的方式有关。 location.reload(true) 将不起作用,因为 URL 将包含一个哈希字符串。

原因:

为了模拟原生移动转换,jQuery Mobile 执行 Ajax 请求并在 first 页面内插入 <div data-role="page"> 元素,本质上是从多页站点创建单页站点(带导航,内置书签)。

解决方案:

但是,团队在如何处理与时间相关的内容方面缺乏远见。我个人已通过向我想要获得新副本的链接添加属性来解决此问题。

$('body').delegate('a[data-cache=false]', 'click', function() {
    var $this = $(this);
    
    $('[data-url="' + $this.attr('href') + '"]' ).remove();
    
});

这会监听点击事件(点击,随便),删除缓存的 div 并让 jQuery 请求一个新的副本。

注意:

对此有很多解决方案,例如data-ajax="false"rel="extenal",但是这些会阻止导航系统发挥其全部功能。 jQuery 团队也意识到了这方面的问题,目前正在对导航进行全面重写。 http://jquerymobile.com/blog/2011/05/13/jquery-mobile-team-update-week-of-may-9th/.

【讨论】:

    【解决方案2】:

    您不需要 jQuery 来刷新页面。您只需致电location.reload(true)

    通过将第一个(也是唯一的)参数设置为 true,我们强制从服务器刷新,而不仅仅是从缓存中重新加载页面。

    【讨论】:

    • 请问如何使用?例如,我将它放在页面的哪个位置?
    • @Satch3000: <button onclick="location.reload(true)">Reload the page</button>?
    • 出于某种奇怪的原因,有时您必须这样做:setTimeout(function(){window.location.reload(true);},1);
    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多