AJAX多重回复

时间:2018-03-30 11:51:43

标签: javascript php ajax laravel-5.5

我现在正在深入研究JavaScript和AJAX技术,并且我很了解AJAX和POST。现在我想知道我的PHP代码(在这种情况下,Laravel控制器)是否广播到广播频道,然后由客户端的JavaScript接收,以便操纵某些东西,比如像这样的过程:

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

$.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);
    }
});

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

2 个答案:

答案 0 :(得分:2)

您可以使用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来应用转换,以感受进度中的进度条。

答案 1 :(得分:0)

使用javascript回调或承诺的概念。你可以创建一个脚本,当点击按钮时,onclick函数将运行并更改tge按钮内的内容,当更改时执行ajax调用,如果成功再次调用promise