等待页面加载,然后加载CGI脚本?

时间:2018-12-13 16:38:06

标签: javascript python html linux apache2

我正在尝试为连接LAN的设备创建一个页面,该页面将向该设备(Raspberry Pi)发出关闭命令,并显示一个加载栏,告诉用户在拔出该设备之前要等待5秒钟。唯一的问题是,无论我以哪种方式执行脚本,它总是在页面有机会在客户端加载之前关闭。

客户端“网站”的首页上有一个按钮,显示“关闭”,当我单击该按钮时,它应该首先加载显示了加载栏和消息的关闭页面。然后,一旦页面加载完毕,以便用户可以实际看到它,它应该执行脚本。我不认为必须打开Pi才能使页面保留在屏幕上,也不需要让控制加载条的JavaScript保留,所以我认为页面只是在执行脚本之前才有机会呈现,并且因此,我收到连接中断消息,而不是预期的页面。

我尝试了以下方法:

  • 将关闭按钮的表单操作设置为Python脚本,该脚本显示“ Location:http://soandso/shutdown.html”,然后在os模块中发出“ sudo shutdown now”命令。
  • 将关闭按钮的表单操作设置为页面本身,然后将src属性设置为页面中脚本位置的脚本标签。在标题和主体底部都尝试过此操作。
  • 在页面上为加载栏创建超时后,使用XMLHttpRequest调用shutdown.py脚本,以确保在页面至少加载之前不执行它(从主体调用超时设置onload属性)。

这些都不起作用,在页面加载之前,我的连接总是被中断。我还能尝试什么?

1 个答案:

答案 0 :(得分:0)

我能够通过使用事件侦听器侦听DOMContentLoaded事件来实现此目的。

document.addEventListener("DOMContentLoaded", function() {
    shutdown();
});