Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   AJAX из чего подгружать ? (https://javascript.ru/forum/misc/6159-ajax-iz-chego-podgruzhat.html)

Andrei 15.11.2009 04:54

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

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

Octane 15.11.2009 13:18

JSON -- это текстовый формат данных, соответственно хранить данные можно в обычном текстовом файле и формировать самостоятельно.
http://json.org/json-ru.html

Andrei 15.11.2009 15:00

а если через xml ?

Octane 15.11.2009 15:18

xml vs json

Andrei 15.11.2009 15:41

У меня не получается вывести 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>


Подскажите пожалуйста
!

Octane 15.11.2009 15:56

doc.getElementsByTagName("root").childNodes;

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

И, наверное, чтобы использовать responseXML, а не responseText, сервер должен посылать соответствующий заголовок Content-Type, при ответе на запрос, какой-нибудь application/xml.

Andrei 15.11.2009 16:14

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

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

Falcon 17.11.2009 10:13

что то я не понял.
зачем тебе = xmlhttp.responseText; ??
у тебя в XML как я понял html теги?
тогда тебе нужно responseXML.

Andrei 17.11.2009 13:34

Разобрался :

вот часть кода:
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 подгружаемого файла ? ');

Octane 17.11.2009 14:01

Цитата:

Сообщение от Andrei
здесь писать URL подгружаемого файла ?

XMLHttpRequest - MDC
Заголовки HTTP
Список заголовков HTTP
Методы объекта XMLHttpRequest

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


Часовой пояс GMT +3, время: 13:21.