Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.02.2012, 01:47
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Дёрганье и responseText (Проблемы с изменением контента)
Код изменения контента страницы без перезагрузки страницы. Своего ничего практически, всё по примеру - http://diveintohtml5.info/examples/history/fer.html, за исключением только что асинхронности (в примере - синхронно). С pushstate проблем никаких. А вот по поводу самого изменения контента возникли некоторые вопросы:
1. responeText - как эта штука работает? я прописываю
document.getElementById("content").innerHTML = req.responseText;

А он мне меняет всю страницу...
Правда, по-моему, когда было синхронно, он мне вообще новую страницу полносью загружал вот в этот указанный див.
А менял я
function swapPhoto(href) {
  var req = new XMLHttpRequest();
  req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           false);
  req.send(null);
  if (req.status == 200) {
    document.getElementById("content").innerHTML = req.responseText;
    setupHistoryClicks();
    return true;
  }
  return false;
}

На вот это
function swapPhoto(href) {
  var req = new XMLHttpRequest();
  req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
      if(req.status == 200) {
        document.getElementById("content").innerHTML = req.responseText;
        setupHistoryClicks();
        return true;
      }
    }
  };
  req.send(null);
  return false;
}


Вкратце страница такая:
<body>
  <div id="menu">
    <a href="" id="ssylka">Ssylka</a>
  </div>

  <div id="content">
    <p>Abyr-abyr</p>
  </div>
</body>

А меняет мне оба дива..


2. Как проще всего сделать так, чтобы страница не дёргалась (не прибивалась к верху), когда меняем этот контент...ну так, чтоб всё плавно было..?
Ответить с цитированием
  #2 (permalink)  
Старый 27.02.2012, 01:58
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Вот ещё
Если даже так
function swapPhoto(href) {
  var req = new XMLHttpRequest();
  req.open("GET",
           "http://achacha/chacha/" +
             href.split("/").pop(),
           true);
  req.send(null);
  return false;
}


Он всё равно загружает мне новую страницу....всмысле не саму страницу, а её содержание....но я же не прошу этого...или прошу, но если так, то где?
Ответить с цитированием
  #3 (permalink)  
Старый 27.02.2012, 03:29
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

req.responseText не причём. вы с хистори намудрили вот страница вся и обновляется . как вариант ваш браузер не поддерживает хистри,но 99% что вы намудрили
Ответить с цитированием
  #4 (permalink)  
Старый 27.02.2012, 08:05
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

С history всё впоряде, я же написал.....ну, ситуация какая - убираю из кода XMLHttpRequest и всё, что с ним связано - всё норм, никто никуда не переходит ничего не мигает не моргает, адрес страницы меняется.
А с ним, даже без событий, просто как выше написано - open, send и всё - даёт мне новую страницу....=/
Ответить с цитированием
  #5 (permalink)  
Старый 27.02.2012, 11:21
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от alexandr_v-vich
А с ним, даже без событий, просто как выше написано - open, send и всё - даёт мне новую страницу....=/
Еще раз для тех кто в танке-XMLHttpRequest не может заменить страницу при всём желании. Дело либо в хистори либо в вашей криворукости.
"Моргание"-это переход на новую страницу. неужели тяжело пользоваться инструментами разработчика встроенными практически в любой браузер или фаербагом,какие покажут что именно переход есть на страницу?
Страница к какой обращаетесь случайно не отдаёт страницу с хедом, боди ?

Последний раз редактировалось dmitriymar, 27.02.2012 в 11:43.
Ответить с цитированием
  #6 (permalink)  
Старый 27.02.2012, 17:26
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Так я о том и говорю, что не может, а делает - из двух вариантов вероятней всего - криворукость...
В веб консоли, при "переходе" -- чисто, ничего не происходит, а страница меняется вся. Происходит это даже только просто с req.open и req.send, но если убрать вообще XMLHttpRequest перехода нет, изменений нет.

А с морганием извиняюсь не то написал(там другая ситуация была), имелось ввиду, что прибивает к верху и как избавится от этого, если это, только, не та же проблема)
Ответить с цитированием
  #7 (permalink)  
Старый 27.02.2012, 17:35
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

напишите адрес куда делаете запрос-это раз. И два в консоли нужно смотреть в разделе сеть-не появляются ли запросы после аякс
Ответить с цитированием
  #8 (permalink)  
Старый 27.02.2012, 17:40
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

Блин, комментарий стёрся....ладно,
Ща, походу там вообще ничего не происходит просто новая страница загружается, всё-таки криворукость, понять бы где только...
Ответить с цитированием
  #9 (permalink)  
Старый 27.02.2012, 17:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

криворукость может быть в том как вариант что сценарий к какому вы обращаетесь отдаёт код полноценного сайта ,с хедом ,боди а не текст.
+ вы заголовки не отправляете пеоед запросом пример-
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded","Cache-Control: no-store, no-cache, must-revalidate");
Ответить с цитированием
  #10 (permalink)  
Старый 27.02.2012, 18:00
Аспирант
Отправить личное сообщение для alexandr_v-vich Посмотреть профиль Найти все сообщения от alexandr_v-vich
 
Регистрация: 30.01.2012
Сообщений: 78

А заголовки обязательны?
Кстати, у меня так на страницах стоит кодировка utf-8, а в ответе приходит в заголовках windows-1251....это к теме, да?
И как их правильно оформить?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37