【发布时间】:2015-04-11 04:00:37
【问题描述】:
我在 perl 中有一个 CGI 脚本,它运行带有虚拟目标的 swi-prolog:
它写“1”然后在一秒钟后在新行上写“2”等最后在新行上写“end”
我的目标是获得一个网页,其中 1、2、3、end 将逐渐写入,如果您执行此 prolog 代码,它会在终端中发生。
perl CGI的mwe:
#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;
use CGI;
print "Content-type: text/html\n\n";
print <<EOF;
<html>
<head><title>Title</title></head>
<body>
EOF
my $out = `swipl -g 'writeln(1), sleep(1), writeln(2), sleep(1), writeln(3), sleep(1), writeln(end)' -t halt`;
print "<pre>$out</pre>";
print <<EOF;
</body>
</html>
EOF
exit;
【问题讨论】:
-
您可以通过从服务器发送四个单独的页面来做到这一点,但时间会非常不准确。这样做的方法是在浏览器中运行的页面中嵌入一些 JavaScript。由于您只是出于好奇而这样做,我建议您找到其他东西