Javascript AJAX多响应

Javascript AJAX多响应,javascript,php,ajax,laravel-5.5,Javascript,Php,Ajax,Laravel 5.5,我现在正在深入研究JavaScript和AJAX技术,我理解AJAX,并能很好地使用它。现在我想知道是否有类似于我的PHP代码(在本例中为Laravel controller)广播到的广播频道的东西,然后JavaScript在客户端接收到该频道以进行操作,比如这样的过程: 用户单击一个按钮,按钮内会显示一个微调器。按钮旁边有一个状态标签,指示当前正在处理的流程/任务。最后,按钮变成一个链接或其他东西。因此,我现在想要的是,我可以多次更新状态,因为我当前的AJAX代码在流程结束时只会收到一条消息或

我现在正在深入研究JavaScript和AJAX技术,我理解AJAX,并能很好地使用它。现在我想知道是否有类似于我的PHP代码(在本例中为Laravel controller)广播到的广播频道的东西,然后JavaScript在客户端接收到该频道以进行操作,比如这样的过程:

用户单击一个按钮,按钮内会显示一个微调器。按钮旁边有一个状态标签,指示当前正在处理的流程/任务。最后,按钮变成一个链接或其他东西。因此,我现在想要的是,我可以多次更新状态,因为我当前的AJAX代码在流程结束时只会收到一条消息或一个状态,仅此而已,中间没有任何内容:

$.ajax({
   url: "/admin/test",
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    method: 'POST',
    dataType: 'json',
    data: {
        id: whatever
    },
    success: function(result)
    {
        console.log(result.status);
    }
});

现在我想知道这是如何进一步发挥作用的

您可以使用ajax的beforeSend事件启动进度条,完成后可以将进度条宽度设置为100%

$.ajax({
    url: "/admin/test",
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    method: 'POST',
    dataType: 'json',
    data: {
        id: whatever
    },
    beforeSend : {
        // start progress bar
    },
    success: function(result)
    {
        console.log(result.status);
        // complete progress bar
    }
 });

此外,您还可以使用css应用转换,让人感觉到进度条中的进度。

使用javascript回调或承诺的概念。您可以创建一个脚本,当单击按钮时,onclick函数将运行并更改tge按钮内的内容,当更改时,执行ajax调用,如果成功再次调用承诺,您应该查看websocketsIf服务器需要在不同时间发回多个内容,如果要使用XMLHttpRequest,则需要多次调用。可能需要查看SSE: