Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 spinner上显示消息_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 在ajax spinner上显示消息

Javascript 在ajax spinner上显示消息,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在进行一个ajax调用,并成功调用了更多函数。 在调用过程中,我在之前显示微调器,并在完成时隐藏它。 我需要用微调器显示一些消息,比如成功调用哪个函数 是微调器的标记 function runAjax(){ $.ajax({ url:"demo_test.txt", beforeSend:function(){ $('#message').show(); }, success:function(r

我正在进行一个ajax调用,并成功调用了更多函数。 在调用过程中,我在之前显示微调器,并在完成时隐藏它。 我需要用微调器显示一些消息,比如成功调用哪个函数

是微调器的标记

function runAjax(){

    $.ajax({
        url:"demo_test.txt",
        beforeSend:function(){
           $('#message').show();
        },
        success:function(result){
           displaymessage1();
        },
        complete:function(){
           $('#message').hide();
        }
    });
}

function displaymessage1(){
    $('#message').append('This is message 1');
    displaymessage2();
}

function displaymessage2(){
    $('#message').append('This is message 2');
    displaymessage3();
}
function displaymessage3(){
    $('#message').append('This is message 3');
}
调用“displaymessage1()”后,我想在微调器上查看消息,然后查看displaymessage2()和displaymessage3()的消息

问题是,直到成功功能完成,消息才会出现。一旦成功完成,消息就会出现,但随着ajax的完成,消息会在几秒钟内消失

我需要显示它来创建一个处理效果,这样用户就会知道哪个方法正在运行

我还尝试设置async:false,但仍然没有帮助


请帮助,谢谢

我在这里创建了代码片段来跟踪/记录状态,您也可以看到

下面的代码片段包含JavaScript、CSS和HTML代码块
(可以在末尾运行代码段)
//假设=>delayTime[0:Start,>0:Complete,undefined:for其他情况]
功能显示消息(状态文本、延迟时间){
var clear=函数(){
$(“#state”,this).empty();
},
$m=$(“#消息”).show();
如果(delayTime==0)清除调用($m);
$(“
  • ”{ 文本:状态文本 }).appendTo($m.children(“#state”); 如果(延迟时间)$m.fadeOut(延迟时间,清除); } 函数runAjax(){ $.ajax({ 数据类型:“jsonp”, 网址:'http://jsfiddle.net/echo/jsonp/', beforeSend:函数(){ 显示消息(“请求已启动…”,0); }, 数据:{ “文本”:“一些文本”, “文本2”:“另一个文本” } }).完成(功能(响应){ displayMessage(“请求已成功处理!”); }).fail(函数(){ 显示消息(“请求失败!”); }).always(函数(){ displayMessage(“动作完成,状态信息将在3秒钟内清除”,3000); }); } $(函数(){ $(#testBtn”)。在(“单击”,运行Ajax); });
    ul{
    保证金:5px;
    边框:2个虚线#999;
    填充:10px;
    }
    ul>li{
    线高:30px;
    列表样式:无;
    边框底部:1件银色虚线;
    }
    
    点击我!
    
    
  • 消息日志。。。(本项目仅用于测试)

  • 您的函数名与正在进行的调用不匹配。微调器的“标记”在哪里?不…消息正在出现…但它们在成功块完成之前不会出现…一旦成功完成,它们将立即出现。在您给出的代码中,函数名与调用不匹配,给定的代码不起作用,因为对象中有一个错误-它们应该存在的地方没有逗号。实际上,上面的代码是伪代码。在实际代码中,我得到了一个大约33k行的大JSON,它被我从success块调用的函数解析。检查此url并检查标题为“在页面更新时提供一些视觉反馈”的部分我试图通过使用普通的Ajax JS和JQUERY实现类似的功能。您是否希望通过使用相同的方法
    displaymesse1
    使用
    result
    来管理显示消息和处理业务逻辑?场景是调用“displaymesse1()”的那一刻,我应该在spinnerbox上看到消息,然后在“displaymessage2()”我应该立即在spinner上看到displaymessage2的会议,然后在spinner上看到displaymessage3的会议,然后spinner应该隐藏起来,因为在displaymessage3()之后ajax将完成。您已经检查了我在前面的评论中添加的链接,并浏览了该部分…您将了解我想要做什么