PHP執行顯示在屏幕上的任何東西之前,所以你可能不會是能夠做到這一點:代碼會簡單地睡5,然後在顯示給用戶之前繼續生成剩餘的html。
你可能想要做的是將按鈕標記爲display:none,然後當頁面加載完成時,會有一個js函數調用一個php頁面來返回文件是否存在。讓js函數循環,直到php頁面顯示文件消失,然後讓js函數顯示按鈕並停止循環。
<button type="button" id="test_btn" style="display: none;">Download</button>
<script type="text/javascript">
$(document).ready(function() {
checkFile();
function checkFile() {
$.ajax({
url: '/path/to/file_checker.php',
type: 'GET',
success: function (data) {
if (data === "deleted") { // or whatever you want the response to be
$('#test_btn').show();
}
else {
checkFile(); // you can add a setTimeout if you don't want this running too often
}
}
});
}
}
</script>
那麼你的文件檢查PHP可以類似於你有什麼東西:
if (file_exists("/aaa/file.txt")) {
echo "exists";
}
else {
echo "deleted";
}
那是因爲你的PHP是在你的服務器執行,並且CSS是由客戶端渲染的。 –
睡覺只是延遲了這段時間對客戶的響應。這沒有意義。如果文件永遠不會被刪除,那麼你的網頁將永遠不會得到迴應,並且會超時。你應該做的是,如果該文件在請求時存在,則顯示該按鈕。如果不是,不要顯示它。如果用戶按下按鈕,請再次檢查文件的狀態。如果它在被渲染的按鈕和從用戶返回的請求之間的時間內被刪除,只要返回一個錯誤或警告,無論適用於您的用例。 – ADyson
您可以對服務器端腳本執行ajax調用,告訴您文件是否存在,然後根據響應添加/刪除類 – Pete