Как очистить HTML-контент, уже отправленный в браузер, без JavaScript? - PullRequest
3 голосов
/ 30 августа 2011

Bugzilla, средство отслеживания проблем Mozilla, имеет хороший экран загрузки во время выполнения поиска.Во времена Аякса в этом нет ничего особенного.Они делают это без какого-либо сценария, и я хочу знать, как.

Например:

  1. Отключить JavaScript
  2. Открыть следующий URL:
    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, включая новое название «Список ошибок».

Итак, мой вопрос: как это работает точно?Пожалуйста, не перечисляйте альтернативные методы - я вообще не заинтересован в загрузке экранов, но хочу использовать этот точный механизм для чего-то совершенно другого.

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

если вы посмотрите на исходную страницу, то увидите, что на самом деле вы получите два ответа с собственным заголовком

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 ...

0 голосов
/ 30 августа 2011

Используйте тег meta refresh для перезагрузки страницы каждые N секунд.

Верните «пожалуйста, подождите страницу» (с метатегом), если собраны результаты поиска.

Вернуть страницу результатов ( без метатег), когда результаты будут готовы.

Вы сможете увидеть, что происходит, когда вы открываете Firebug (или аналогичный) и открываете вкладку Сеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...