2010-05-06 47 views
3

我玩弄.load()和.ajax(),但我没有结束。这是我需要的: Everey分钟功能应检查它是否可以加载某个页面。 如果连接成功,我希望刷新页面,如果没有,则不会发生任何事情,脚本将在稍后重试。如何通过jQuery刷新页面并确保存在连接?

我正在使用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我想要什么。任何暗示赞赏。

回答

9

通过写success: location.reload(),你立即调用reloadsuccess参数设置为任何reload回报率(这是undefined

您需要使用调用reloadsuccess回调一个匿名函数,像这样:

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

感谢您的帮助!这帮助我,当我重新连接到网络时,页面立即被加载。 – Steve 2010-05-10 20:12:24

+0

完成。我想跟进我的问题,所以我发布了自己的答案。或者我怎样才能改善我的问题在这里stackoverflow? – Steve 2010-05-10 20:25:28

+0

您可以编辑您的问题或要求一个新的问题。 – SLaks 2010-05-10 20:41:11

0

感谢SLaks,jQuery现在重新尝试重新加载。但是,如果我将网线从PC上拔下,它仍会清除屏幕并且不会触发错误。这里是我的新尝试:

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

在URL中添加一个随机数以避免缓存('url:'index.php'+ Math.random()') – SLaks 2010-05-10 20:24:23

+0

另外,安装[Firebug](http://getfirebug.com),将'location.reload ''console.log(arguments)',并检查在控制台选项卡上发生了什么,当你拔下连接。 – SLaks 2010-05-10 20:26:02

+0

很酷,谢谢,我喜欢这个方法..顺便说一句:我用歌剧蜻蜓;) – Steve 2010-06-24 15:06:27