2011-08-30 63 views
3

Mozilla的問題跟蹤器Bugzilla在搜索執行時有一個很好的加載屏幕。在阿賈克斯時代,這沒什麼特別的。儘管他們沒有任何腳本,但我想知道如何。如何清除已發送到瀏覽器的HTML內容,而不使用JavaScript?

例如:

  1. 關閉JavaScript
  2. 打開以下網址:
    https://bugzilla.mozilla.org/buglist.cgi?short_desc=IDL&resolution=---&resolution=DUPLICATE&query_format=advanced&short_desc_type=allwordssubstr

您與動畫圖像獲取網頁,文本「請稍等,您的錯誤檢索「。和「Bugzilla正在思考你的搜索」的標題。

更新:

這是整個DOM在執行搜索。沒有元刷新,沒有腳本。

<html> 
    <head> 
     <title>Bugzilla is pondering your search</title> 
    </head> 
    <body> 
     <div style="margin-top: 15%; text-align: center;"> 
      <center> 
       <img width="160" height="87" alt="" 
        src="extensions/BMO/web/images/mozchomp.gif"> 
      </center> 
      <h1>Please wait while your bugs are retrieved.</h1> 
     </div> 
    </body> 
</html> 

過了一會兒,結果頁面出現。之前的HTML消失了,並且出現了一個全新的DOM,包括一個新的標題「Bug List」。

所以我的問題是:這是如何工作的?請不要列出替代技術 - 我根本沒有興趣加載屏幕,但想要使用完全不同的確切機制。

+0

你應該看看這個:http://stackoverflow.com/questions/244183/how-to-display-a-loading-screen-while-site-content-loads –

+0

OP實際上是要求一個非js解決方案 –

+0

我編輯了標題以使這一事實更加明顯。 –

回答

3

如果你看你看你的頁面的烴源實際獲得每兩個響應與它自己的頭

WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY. 
--------- =_y97AELt1tHMqcK8D 
Content-Type: text/html; charset=UTF-8 

<html> 
    <head> 
    <title>Bugzilla is pondering your search</title> 
    </head> 
    <body> 
    <div style="margin-top: 15%; text-align: center;"> 
     <center><img src="extensions/BMO/web/images/mozchomp.gif" alt="" 
     width="160" height="87"></center> 
     <h1>Please wait while your bugs are retrieved.</h1> 
    </div> 


    </body> 
</html> 

--------- =_y97AELt1tHMqcK8D 
Content-Type: text/html; charset=UTF-8 
content-disposition: inline; filename="bugs-2011-08-30.html" 
Set-Cookie: {data} 
Set-Cookie: {data} 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
         "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
    <title>Bug List</title> 
{the rest of the request} 

我不是太肯定,除了Mozilla瀏覽器這樣做的瀏覽器支持...

+1

看起來像'multipart/x-mixed-replace',請參閱http://en.wikipedia.org/wiki/Push_technology#HTTP_server_push。該文章提到它「是由Netscape於1995年推出的」,「今天仍受Firefox,Opera和Safari支持,但被Internet Explorer忽略」。 –

0

使用meta refresh tag每N秒鐘重新載入頁面。

只要收集搜索結果,就返回「請稍等頁面」(帶有元標記)。

當結果準備就緒時,返回結果頁面(,不帶元標記)。

你應該能夠看到,當你打開Firebug(或類似)所發生的事情,並打開網絡選項卡。

+0

頁面上沒有元刷新標籤。 –

相關問題