как сделать веб-страницу, которая, кажется, не «перезагружается»


person Community    schedule 11.05.2009    source источник
comment
Я не вижу на этой странице ничего, что не требовало бы от меня входа в систему. Извините   -  person Orion Edwards    schedule 12.05.2009
comment
Я не уверен, что вы пытаетесь показать с помощью ссылки Bountii, все, на что я нажимаю, приводит к полной перезагрузке страницы.   -  person Chad Birch    schedule 12.05.2009


Ответы (5)


Просто очень быстро перезагружается. На всей этой странице нет никакого Javascript. HTML хорошо сформирован, и страница очень упрощена.

person Joe Phillips    schedule 11.05.2009
comment
ну я буду проклят. Я думаю, что раздел заголовка все еще не перезагружается - person ; 12.05.2009
comment
Что ж, вы можете думать все, что угодно, пока вы не заботитесь о том, чтобы быть правым. Вся страница перезагружается. :б - person Chad Birch; 12.05.2009

Если вы хотите увидеть, что происходит, сделайте следующее:

  1. Установите firefox, если вы его еще не используете
  2. Установите расширение firebug.
  3. Перейдите на интересующий вас веб-сайт и щелкните маленький значок Firebug (в строке состояния в правом нижнем углу, это небольшая ошибка) и включите все параметры Firebug для этого сайта.
  4. Перезагрузите веб-страницу и нажмите вокруг
  5. Посмотрите на разные панели Firebug. Он отследит все сетевые запросы (XHR или другие), и вы сможете покопаться и посмотреть.
person Orion Edwards    schedule 11.05.2009
comment
он не отправляет запрос XHR, поэтому я думаю, что он выполняет полную загрузку страницы - person ; 12.05.2009

Это может быть запрос новых данных через Ajax, заполнение скрытого элемента <div>, а затем замена видимого <div> скрытым.

person a paid nerd    schedule 11.05.2009

вероятно, он использует Javascript XMLhttprequest. Facebook и многие другие веб-сайты используют это. Он совершает поездку на сервер без перезагрузки всей страницы.

Вот пример с сайта w3schools.com:

<script type="text/javascript">

var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for all new browsers
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE5 and IE6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
if (xmlhttp.readyState==4)
  {// 4 = "loaded"
  if (xmlhttp.status==200)
    {// 200 = OK
    // ...our code here...
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}
</script>
person Josh Curren    schedule 11.05.2009
comment
Если вы просто посмотрите на источник, то ясно увидите, что это не так. Здесь нет смысла гадать. - person Joe Phillips; 12.05.2009
comment
это может быть не так для примера, который он привел, но это способ заставить страницу перезагружать части с перезагрузкой всей страницы - person Josh Curren; 12.05.2009

Возможно помимо просто быстрой загрузки играет роль оптимизация браузера и кеш. У меня это выглядит так, как будто страница загружалась несколько раз, чередуя обновления страницы с нажатием на ссылки.

Только что попробовал это в IE, и каждый щелчок я вижу видимую перезагрузку. В Chrome не похоже, что есть какие-либо обновления, я думаю, из-за оптимизации браузера. Я знаю, что в Chrome, если вы переключаетесь между двумя вкладками с одинаковым содержимым, он даже ничего не перерисовывает.

person Davy8    schedule 11.05.2009