簡體   English   中英

Jquery加載屏幕通過PHP覆蓋大型mysql查詢?

[英]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;\">&nbsp;</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM