所以這裏有一點點需要破解的東西。我有這個網頁執行一大組任務,最後,它重新啓動httpd來重新加載剛剛編輯的新httpd.conf。從PHP重新啓動httpd,臨死前的回顯頁面
- 這沒有問題,但我想在服務器死亡並重新啓動之前顯示結果。
- 原因是我最初製作了一個js按鈕來執行腳本,然後用「Wait ...」替換div的內容,當腳本結束時,它會填充div的內容在我們的例子中,PHP文件「完成」。 。
- 由於我在最後添加了重新啓動,它只是一直等待。
我發現flush方法,並試圖如下,但沒有骰子
if (ob_get_level() == 0) ob_start();
echo "Finished.";
ob_flush();
flush();
ob_end_flush();
mysqli_close($conn);
$cmd= 'sudo /usr/sbin/apachectl restart';
exec($cmd);
exit();
編輯::一些更多的信息
現在我認爲這個問題是不是PHP本身,而是JavaScript的。它看起來像這樣:
document.getElementById("infocr").innerHTML = "Wait...";
$.post("create.php", {
user: targetuser
}
, function(datacr) {
document.getElementById("infocr").innerHTML = "datacr";
$('#csf')[0].reset(); // To reset form fields
wait=1;
setTimeout(function(){wait=0;}, 5000);
});
括號之間的東西永遠不會被調用,因爲php文件永遠不會「結束」。你能爲此提出任何解決方法嗎? 5秒計時器是爲了防止按鈕垃圾郵件
用'graceful'重新啓動Apache,而不是蠻力的'restart'。 – deceze 2015-04-03 06:15:20
@deceze精美的工作。這很好,謝謝。發佈一個完整的答案,所以我可以標記它 – aron9forever 2015-04-03 06:18:30
只是'apachectl優雅'應該做的。 – deceze 2015-04-03 06:23:59