Ajax调用等待监听器脚本完成并通知用户

时间:2017-11-03 00:49:11

标签: javascript php jquery mysql ajax

我有一个允许用户从网页(main.php)提交测试用例的程序,该网页将发送一个ajax请求,在MySQL中插入一行,用{(1)用户数据(insert.php) }}。然后我有一个监听器脚本(testexec.php),它在crontab上每分钟运行一次,以处理/运行(ssh到每个服务器并在服务器上运行测试)每个服务器上的测试用例并将行更新为{{1}测试完成后。

我的ajax调用将在插入行完成后立即完成并告诉用户等待。

我希望能够让用户知道监听器脚本何时完成其测试用例并将结果显示回页面。

这是我的AJAX电话:

main.php

done=0

2 个答案:

答案 0 :(得分:1)

返回' responseText'的值AJAX请求的值。这样它就会同步。

//POST the data to insert.php
         return $.ajax({
              url:"insert.php",
              type: "POST",
              data: {
                  gateway: $("#gateway").val(),
                  option: $('input[type=radio]:checked').val() 
              },
              dataType: "text"
          }).responseText

答案 1 :(得分:1)

您可以按照定时间隔设置另一个ajax调用,每隔几秒轮询一次服务器,并让服务器在准备就绪后返回结果并清除ajax调用中的间隔作为成功函数的一部分,或者创建一个事件监听器/ websocket连接到服务器并在服务器输出可用后刷新

或者,您将测试脚本的运行合并到php ajax处理程序脚本中,如果需要,增加ajax调用的超时,并且在测试脚本完成之前不要返回任何输出