【问题标题】:How can I refresh a page via jQuery and ensure that there's a connection?如何通过 jQuery 刷新页面并确保存在连接?
【发布时间】:2011-02-16 14:36:04
【问题描述】:

我玩弄了 .load() 和 .ajax(),但没有结束。这是我需要的: 每隔一分钟,该功能将检查它是否可以加载某个页面。 如果连接成功,我希望刷新页面,如果没有,则不会发生任何事情,脚本将稍后重试。

我正在使用 jQueryTimers 插件。到目前为止,这是我的代码:

//reload trigger
$(document).everyTime('60s', 'pagerefresh', reloadPage, 0, true);

//refresh function
function reloadPage() {
    $.ajax({
        url:'index-1.php',
        type:'HEAD',
        success: location.reload(true)
        })
}

我不知道如何告诉 jQ 我想要什么。任何提示表示赞赏。

【问题讨论】:

    标签: jquery refresh


    【解决方案1】:

    通过编写success: location.reload(),您将立即调用reload,并将success 参数设置为reload 返回的任何内容(即undefined

    您需要使用匿名函数调用reload 作为success 回调,如下所示:

        success: function() { location.reload(true); }
    

    【讨论】:

    • 感谢您的帮助!这对我有帮助,当我重新连接到网络时,页面会立即加载。
    • 完成。我想跟进我的问题,所以我发布了自己的答案。或者我如何在stackoverflow上完善我的问题?
    【解决方案2】:

    感谢 SLaks,jQuery 现在重试重新加载。

    但是,如果我从 PC 上拔下网线,它仍然会清除屏幕并且不会触发错误。这是我的新尝试:

    $.ajax({
            url:'index.php',
            type:'HEAD',
            success: function() { location.reload(true); },
            error: function() {$('DIV').append('<p>ERROR</p>');}
            })
    

    【讨论】:

    • 在 URL 中添加一个随机数以避免缓存 (url: 'index.php' + Math.random())
    • 另外,安装Firebug,将location.reload 替换为console.log(arguments),并在拔下连接时检查控制台选项卡上发生的情况。
    • 酷,谢谢,我喜欢这种方法。顺便说一句:我使用歌剧蜻蜓;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2014-07-21
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多