jQuery移动刷新按钮

5

当我向数据库添加新内容时,页面没有更新,我遇到了问题。所以我想添加一个刷新按钮。

请问我该如何做呢?


请在您的帖子中不要使用签名或标语。您发表的每篇帖子已经用您的标准用户卡进行了“签名”,该卡直接链接回您的用户页面。 - Sathyajith Bhat
你觉得 window.reload() 不会起作用吗? - jimy
@Sathya 你在说哪些签名??? - jimy
2个回答

10
您遇到的问题与jQuery Mobile如何缓存页面有关。而location.reload(true)不起作用,因为URL将具有哈希字符串。

原因:

为了模拟本机移动过渡效果,jQuery Mobile执行Ajax请求并将<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="external",但是这些将会限制导航系统的功能。此外,jQuery 团队已经意识到了围绕该问题的一些问题,并正在着手进行完整的导航重写。http://jquerymobile.com/blog/2011/05/13/jquery-mobile-team-update-week-of-may-9th/


2

刷新页面不需要使用jQuery,只需调用location.reload(true)

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


请问我该如何使用它?例如,我应该把它放在页面的哪个位置? - Satch3000
@Satch3000: <button onclick="location.reload(true)">重新加载页面</button> - Nick
由于某些奇怪的原因,有时您必须执行以下操作:setTimeout(function(){window.location.reload(true);},1); - thedjaney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接