[英]Jquery loading screen to cover a large mysql query via PHP?
我正處於我的客戶端的報告工具中,如果它們是X天,它基本上可以動態重建報告。
問題是報告是用PHP重建的,其中一些可能非常大,意味着20-40秒的加載時間。
目前,它只是在執行查詢時掛起頁面。
然而,我想要做的是在查詢開始之前將一些jquery加載覆蓋放置到頁面中,然后當查詢完成時,重定向到另一個頁面(將顯示結果)。
我是否正確地認為,只要我在運行查詢之前將html加載到頁面中,就應該顯示加載屏幕,然后一旦查詢完成,我可以放置另一部分HTML來對另一個頁面進行元刷新(顯然標題重定向是不可能的,因為標題已經被發送)。
如果這是正確的,任何人都可以推薦任何基於jquery的加載插件嗎?
非常感謝
不是那么肯定,你寫的是什么意思
我是否正確地認為,只要我在運行查詢之前將html加載到頁面中,就應該顯示加載屏幕,然后一旦查詢完成,我可以放置另一部分HTML來對另一個頁面進行元刷新(顯然標題重定向是不可能的,因為標題已經被發送)。
但是,讓我告訴你,我們之前做過的事情:
通過單擊XLS-Export的導出按鈕,顯示模式覆蓋,並發送導出請求。 從那時起,JS一直在尋找具有特定名稱的cookie。 在服務器端,生成導出,並在完成cookie后與XLS數據一起發送。 JS識別出已發送的cookie並隱藏了疊加層。
希望這可以幫助。
您應該使用PHP函數flush()查看刷新輸出到屏幕。 它會告訴用戶實際發生的事情。 有很多教程和代碼片段向您展示如何使用flush()設置JS / JQuery進度條。 一個例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>Progress Bar</title>
</head>
<body>
<!-- Progress bar holder -->
<div id="progress" style="width:500px;border:1px solid #ccc;"></div>
<!-- Progress information -->
<div id="information" style="width"></div>
<?php
// Total processes
$total = 10;
// Loop through process
for($i=1; $i<=$total; $i++){
// Calculate the percentation
$percent = intval($i/$total * 100)."%";
// Javascript for updating the progress bar and information
echo '<script language="javascript">
document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\"> </div>";
document.getElementById("information").innerHTML="'.$i.' row(s) processed.";
</script>';
// This is for the buffer achieve the minimum size in order to flush data
echo str_repeat(' ',1024*64);
// Send output to browser immediately
flush();
// Sleep one second so we can see the delay
sleep(1);
}
// Tell user that the process is completed
echo '<script language="javascript">document.getElementById("information").innerHTML="Process completed"</script>';
?>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.