Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2009, 04:54
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

AJAX из чего подгружать ?
Здравствуйте !

Слышал что контент лучше хранить в json и генерировать его с помощью PHP, но у меня хостин не поддерживает пхп, в чём лучше хранить информацию чтобы потом подгружать её с помощью AJAX в HTML , XML или есть другие варианты !?

Последний раз редактировалось Andrei, 15.11.2009 в 09:27.
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2009, 13:18
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

JSON -- это текстовый формат данных, соответственно хранить данные можно в обычном текстовом файле и формировать самостоятельно.
http://json.org/json-ru.html
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2009, 15:00
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

а если через xml ?
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2009, 15:18
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

xml vs json
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2009, 15:41
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

У меня не получается вывести XML вот фрагмент кода:

function pages(i) {
var xmlhttp = getXmlHttp()
xmlhttp.open('GET', page_url[i], true);
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4) {
   
     if(xmlhttp.status == 200) {

   // var doc = xmlhttp.responseText;
var doc = xmlhttp.responseXML;

//doc.getElementsByTagName("root");

alert(doc);
alert (doc.getElementsByTagName("root").childNodes;);

       document.getElementById('content').innerHTML = xmlhttp.responseText;
       document.getElementById('preloader').style.display = 'none';

         }
  }



};

xmlhttp.send(null);

}


XML:


<?xml version="1.0" encoding="UTF-8"?>
<root>
<![CDATA[
<h1>HELLO WORLD !!!</h1>
]]>
</root>


Подскажите пожалуйста
!
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2009, 15:56
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

doc.getElementsByTagName("root").childNodes;

getElementsByTagName возвращает коллекцию элементов.

И, наверное, чтобы использовать responseXML, а не responseText, сервер должен посылать соответствующий заголовок Content-Type, при ответе на запрос, какой-нибудь application/xml.
Ответить с цитированием
  #7 (permalink)  
Старый 15.11.2009, 16:14
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

doc.getElementsByTagName("root")[0].nodeValue - это исправил !

сервер должен посылать соответствующий заголовок Content-Type - это как ?

Последний раз редактировалось Andrei, 15.11.2009 в 17:02.
Ответить с цитированием
  #8 (permalink)  
Старый 17.11.2009, 10:13
Интересующийся
Отправить личное сообщение для Falcon Посмотреть профиль Найти все сообщения от Falcon
 
Регистрация: 26.10.2009
Сообщений: 23

что то я не понял.
зачем тебе = xmlhttp.responseText; ??
у тебя в XML как я понял html теги?
тогда тебе нужно responseXML.
Ответить с цитированием
  #9 (permalink)  
Старый 17.11.2009, 13:34
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Разобрался :

вот часть кода:
function pages(i) {

    var xhttp = getXmlHttp();

    xhttp.open("GET", page_url[i], true);

    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

    xhttp.onreadystatechange = function () {

        if (xhttp.readyState == 4) { //alert("запрос отправлен");

            if (xhttp.status == 200) { //alert("пришёл ответ от сервера");

                xmlDoc = xhttp.responseXML;

                root = xmlDoc.getElementsByTagName("ROOT");

                content = root[0].childNodes[1].nodeValue;

                document.getElementById('content').innerHTML = content;

            } else {

                alert('Ошибка запроса, пожалуйста повторите запрос сейчас или позже !  ')

            }

        }

    }

    xhttp.send(null);

};



Только вопрос по этой строчки :

xmlhttp.setRequestHeader('Content-Type', 'здесь писать URL подгружаемого файла ? ');
Ответить с цитированием
  #10 (permalink)  
Старый 17.11.2009, 14:01
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от Andrei
здесь писать URL подгружаемого файла ?
XMLHttpRequest - MDC
Заголовки HTTP
Список заголовков HTTP
Методы объекта XMLHttpRequest

В Интернете куча информации, учитесь искать сами, чтобы не задавать всё подряд на форуме.

Последний раз редактировалось Octane, 17.11.2009 в 14:03.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Проблема с AJAX запросом + mod_rewrite BrokenEye AJAX и COMET 1 12.07.2009 02:08
AJAX и history браузера Shasoft jQuery 5 25.06.2009 16:22
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12
AJAX и контент с др. сайта DarkScorpion AJAX и COMET 7 22.05.2009 12:41