shell脚本是否有可能检测JavaScript是否在Firefox上运行?

时间:2012-11-07 15:48:25

标签: php javascript shell

我用JavaScript编写了一个HTML页面,一个PHP文件和一个shell脚本 他们都在同一台机器上 我运行shell脚本,它将用Firefox打开html页面, 当JavaScript完成时,它将POST到getdata.php

<form id="hidden_form" method="POST" action="getdata.php" ></form>

getdata.php将执行某些操作,然后它会向shell脚本发送信号

以上是正常行为,我害怕在某个时候,PHP或JavaScript遇到错误并且不向shell脚本发送信号

有没有什么好的简单方法让shell脚本检测JavaScript是否正在运行?

下面提到的一个人我可以让javascript定期向服务器发送请求,比如每2分钟一次,但是如何让shell脚本注意到这个/获取信号?

4 个答案:

答案 0 :(得分:0)

没有

请记住:Javascript在客户端浏览器上远程运行; PHP(和您的shell脚本)在服务器上。

可以做的事情是在您发送网页时设置警报(在服务器上),并在触发时调用警报处理程序:

答案 1 :(得分:0)

如果您的JavaScript正在运行一个长到进程的脚本,您可能会在设定的时间间隔内间歇性地向服务器提交请求。如果在设定的时间段后没有看到请求...(间隔x2或w / e)并且在完成时尚未收到信号,则可以假设JavaScript本身已停止运行/损坏。

setInterval("methodofcommunicatingtotheserver", 1000); 

等。

答案 2 :(得分:0)

..如前所述:否。

在这种情况下,您最好的选择是:

  1. 重新设计脚本。是否绝对有必要通过浏览器中的javascript将请求发送到php页面?
  2. 如果上述答案为肯定,请查看Selenium,尤其是Selenium WebDriver
  3. 它没有为开箱即用的bash脚本提供绑定,但它很容易从其他语言中使用,例如Python(或PHP,他们说)。

答案 3 :(得分:0)

正如有人建议的那样,您可以使用setInterval轮询服务器以查看javascript引擎是否仍在运行,但这也可能意味着只有执行setInterval的javascript线程才是实际运行的(取决于可能出现的错误类型)出现)。您可以将帖子发送到“status.php”,它会触摸/写入磁盘上的文件,bash脚本可以轮询该文件以查看它是否定期更新。

但我建议你研究phantomjs之类的内容,它可以让你解决这些问题。