Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在等待AJAX调用时显示一次加载图标_Javascript_Php_Ajax - Fatal编程技术网

Javascript 在等待AJAX调用时显示一次加载图标

Javascript 在等待AJAX调用时显示一次加载图标,javascript,php,ajax,Javascript,Php,Ajax,我正在用每4秒使用AJAX自动更新的数据填充一个表。我想在等待AJAX仅在初始页面加载时显示加载消息 目前,我已经成功地显示了加载消息,但是每次通过AJAX更新数据时(每4秒)都会显示该消息—我希望加载消息只显示在最初加载AJAX之前的初始页面加载上。所有后续AJAX更新都不应显示加载消息,因为表中已经填充了数据 加载.. $(文档).ajaxStart(函数(){ $(“#加载”).show(); }).ajaxStop(函数(){ $(“#加载”).hide(); }); var au

我正在用每4秒使用AJAX自动更新的数据填充一个表。我想在等待AJAX仅在初始页面加载时显示加载消息

目前,我已经成功地显示了加载消息,但是每次通过AJAX更新数据时(每4秒)都会显示该消息—我希望加载消息只显示在最初加载AJAX之前的初始页面加载上。所有后续AJAX更新都不应显示加载消息,因为表中已经填充了数据

加载..


$(文档).ajaxStart(函数(){
$(“#加载”).show();
}).ajaxStop(函数(){
$(“#加载”).hide();
});

var auto_refresh=setInterval(
函数(){
$('#load_onlineusers').load('/online_players.php').fadeIn(“慢”);
}, 4000); 


上面是导致加载消息每4秒显示一次的代码。

使用
beforeSend
方法显示加载消息并使用全局变量进行控制:

var executed = false;
$.ajax({ url: "", 
    type: "", 
    data: "", 
    beforeSend: function() {
        if (!executed) {
            // Show loading
            executed = true;
        }
    },
    complete: function() {
        // Hide loading
    },
    success: function(data) {

    }
});

是的,您的ajax调用每4秒点击一次,因此加载图标在这段时间内显示。您现在想要什么?您可以在pageload上放置一个布尔标志,例如messageShowed=false,然后当显示消息时,该标志设置为true。在再次显示消息之前,请务必事先检查标志值。可能重复的。您能给我提供一个使用布尔标志的示例吗?我尝试过这种方法,但无法使其发挥作用。
<script type="text/javascript">
    var auto_refresh = setInterval(
    function () {
        $('#load_onlineusers').load('/online_players.php').fadeIn("slow");
    }, 4000); 
</script>
<div id="load_onlineusers"> </div>
var executed = false;
$.ajax({ url: "", 
    type: "", 
    data: "", 
    beforeSend: function() {
        if (!executed) {
            // Show loading
            executed = true;
        }
    },
    complete: function() {
        // Hide loading
    },
    success: function(data) {

    }
});