javascript - 为 load() 添加超时

标签 javascript jquery

var refreshId_hxlatestposts = setInterval(function() {
var el = $("#hxlatestposts");
var req = $.get("example.php");
el.fadeOut('slow', function () {
    req.done(function( data ){
        el.html(data).fadeIn('slow');
    });
});
}, 60000);

这是我用来每分钟刷新一个 div 的东西,有时它会在它从中获取提要的站点关闭或其他原因时挂起。我想知道如何设置超时,这样如果它无法在 X 秒内加载 php 文件,则返回“加载失败”。

最佳答案

jQuery 文档 ( .ajaxSetup()) 建议使用 .ajaxSetup() 来设置 timeout 的值,而不是在单独的请求中使用它。

如果请求失败,您可以使用 request.fail() 注册一个函数。

$.ajaxSetup({
    timeout: 5000
});

var refreshId_hxlatestposts = setInterval(function() {
    var el = $("#hxlatestposts");
    var req = $.get("example.php");
    el.fadeOut('slow', function() {
        req.done(function(data) {
            el.html(data).fadeIn('slow');
        });
        req.fail(function(jqXHR, textStatus) {
            el.html('Fail to load').fadeIn('slow');
        });
    });
}, 60000);

关于javascript - 为 load() 添加超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584891/

相关文章:

javascript - 顶部导航栏折叠不起作用

jquery - 如何使用 Jquery 删除特定值的 <a href> 链接标记

javascript - 如何在不返回 false 的情况下修复 div 中的返回 Ajax

javascript - 如何从 mysql 在图形栏中显示数据

javascript - 选择自定义属性时无法识别的表达式

javascript - jQuery 滑出表单

javascript - 为什么在函数外部定义颜色时 e.target.style.backgroundColor 不更新?

javascript - jshint 和变量名称超出我的控制范围

javascript - Jquery 选择不关闭选择

javascript - 我应该将 php json 编码转换为 Ajax 数组,第一次对我来说很难理解