国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何顯示 php 頁面的載入程式?
P粉651109397
P粉651109397 2024-01-10 16:52:02
0
1
605

我有一堆 .php 頁面,每個(gè)頁面都對應(yīng)一個(gè) html 網(wǎng)頁。完全處理和加載每個(gè)頁面大約需要一分鐘左右的時(shí)間。我想在頁面完全加載時(shí)向用戶顯示加載圖像。

我在邏輯上想到了一種方法,就像首先加載圖像並且主要內(nèi)容保持隱藏,而.php 正在處理;一旦php 加載完成,它可以回顯一個(gè)元素,該元素充當(dāng)JavaScript 的觸發(fā)器,將主要內(nèi)容的顯示樣式從隱藏變更為區(qū)塊。但我無法執(zhí)行它;因?yàn)槲也?apache 需要先加載 php,然後才能顯示任何輸出。

我看到的另一個(gè)選擇是更改整個(gè)頁面並使用 ajax 加載數(shù)據(jù),但我有點(diǎn)懶得這樣做,因?yàn)檫@將涉及重寫所有 .php 程式碼。

我希望有人可以指導(dǎo)我解決我做錯(cuò)的事情,或者是否有更有效的方法來完成這項(xiàng)任務(wù)。

P粉651109397
P粉651109397

全部回覆(1)
P粉558478150

一種策略是使用 cookie 和中間頁面。將所有請求重定向到?jīng)]有某個(gè)cookie的中間頁面,在中間頁面我們設(shè)定cookie。

使用 apache htaccess 或其他伺服器中的等效項(xiàng),無需修改應(yīng)用程式的頁面。

在 htaccess 中檢查 cookie(例如已經(jīng)載入)是否存在,如果不存在,則重定向到“l(fā)oading.html”,在“l(fā)oading.html”中設(shè)定 hasloading=true,然後進(jìn)行重定向到原始網(wǎng)址。

使用 javascript 在「loading.html」中進(jìn)行重定向非常重要,因?yàn)槭褂?HTTP 重定向您將無法獲得預(yù)期的結(jié)果。

在「loading.html」中顯示正在載入的映像,您必須設(shè)定cookie hasloading=true,然後使用您重定向到原始URL的onload事件,在onload中您會(huì)做一個(gè)小的延遲或映像(正在載入) ) 在某些瀏覽器中將被凍結(jié)而不移動(dòng):

<script>
        window.onload = function() {
            setTimeout( function() {
                location.replace($ORIGIAL_URL.split('#')[0]);
            }, 60 );
        };        
    </script>

隨著 cookie 過期,您可以根據(jù)您的需求使「loading.html」在幾天、幾小時(shí)或幾分鐘內(nèi)不會(huì)重新載入。另一個(gè)選擇是為每個(gè) URL 設(shè)定一個(gè) cookie。

我在幾個(gè)網(wǎng)站上都有類似的實(shí)作。

編輯:

為了說明策略,而不是實(shí)現(xiàn),在這個(gè)簡單的範(fàn)例中,我們不使用 htaccess,並在載入內(nèi)容之前在內(nèi)容頁面上進(jìn)行第一次重定向。

另存為index.html:

<!DOCTYPE html>
<html lang="">
<head>
    <title>Content</title>
</head>
<body>
    <script>
        // check if a cookie exists
        if (!document.cookie.match(/^(.*;)?\s*loading\s*=\s*[^;]+(.*)?$/)) {
            location.replace('loading.html');
        }
    </script>  
    <h1>Content</h1>    
</body>
</html>

另存為loading.html:

<!DOCTYPE html>
<html lang="">
<head>
    <title>Loading</title>
</head>
<body>
    <h1>Loading...</h1>
    <script>
        // set cookie
        document.cookie = "loading=1;0;path=/";
        
        // redirect
        window.onload = function() {
            setTimeout( function() {
                location.replace('index.html');
            }, 2000 );
        };        
    </script>
</body>
</html>

這個(gè)簡單的例子甚至可以在本地的 Firefox 中工作(file:// ...),在 chrome 中我懷疑它在本地工作。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板