javascript - 在刷新浏览器之前,localhost 中的应用程序的结果是挂起的

标签 javascript php html perl localhost

希望我能清楚地说明我的问题。 我在我的本地主机上开发了一个应用程序,使用 HTML 文件作为界面,使用 javascript、PHP、Perl 文件来实现功能。 界面上有一个按钮,应该将用户输入提交给其他文件,然后显示结果。 当我点击那个按钮时,很长一段时间后才生成结果。我现在发现,当我点击那个按钮然后刷新页面时,结果就生成了! 看来结果悬而未决了。 此外,当我单击该按钮并在浏览器中打开另一个选项卡并打开另一个本地主机应用程序时,尽管这两个应用程序不同,但仍会生成结果。

HTML:

<input type='button' value='search' onclick="jsFunction(document.getElementsByName('x1')[0].value,document.getElementById('x2').options[document.getElementById('x2').selectedIndex].value);">

JavaScript:

function jsFunction(x1,x2) 
{
    var url = "file.php";
    var params = "x1="+x1+"&x2="+x2;
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() 
    {
        if (xhttp.readyState == 4 && xhttp.status == 200) 
          document.getElementById("result").innerHTML = xhttp.responseText;
        }
xhttp.open("POST", url, true);
xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhttp.send(params);
}

文件.php:

$x1= (empty($_POST['x1'])) ? '' : $_POST['x1'];
$x2= (empty($_POST['x2'])) ? '' : $_POST['x2'];
echo "This echo before perl statement    ";
pclose(popen("start /b perl file.pl \"$x1\" \"$x2\"", "r"));
echo "This echo after perl statement";

上面两个echo显示出来

Perl file.pl:调用cmd应用,生成结果到文件

open LOG, ">$dataPath/$jobid.log";
open OUT1, ">$dataPath/$jobid.string.txt";
open OUT2, ">$dataPath/$jobid.result.txt";

上面的perl结果是我刷新浏览器后才生成的,或者生成时间比较长。

非常感谢任何澄清或帮助。 谢谢。

最佳答案

start/b perl file.pl "$x1""$x2" 命令将立即返回 perl 进程已启动。它不会等待它完成

要同时等待 perl 进程完成,您需要使用

start /b /wait perl file.pl "$x1" "$x2"

但是,您所有的 Perl 代码似乎只是创建三个磁盘文件然后退出

关于javascript - 在刷新浏览器之前,localhost 中的应用程序的结果是挂起的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35693404/

相关文章:

javascript - 编写 javascript 时要记录的最有用的内容是什么

javascript - 在node.js进程之间读取-共享巨大的哈希值

javascript 无法与 php 代码一起使用来进行 session 超时检查

html - 在 Bootstrap 4 导航栏中将 Logo 与按钮垂直对齐

javascript - 使用带有 Prev 和 Next 图标的 Jquery 滚动到下一个 Div

javascript - 在 D3 的一行中添加空格/间隙

javascript - 如何使用 JavaScript 或 jQuery 让我的 "input a word"脚本正常工作?

php - 无法使用 Slim Framework 从 PUT 请求获得响应

javascript - Ajax 表单数据 php POST 不工作

css - Div 框不会彼此相邻对齐