Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX / Custom function / do not rerender page / 6 сообщений из 6, страница 1 из 1
04.08.2014, 22:22
    #38712599
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
ДОбрый день пишу собственную функцию, которая будет подгружать на страницу контент с помощью технологии ajax.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
window.onload = function() {
    var intervalID = setInterval(function() {
        var updateNewsListVar = updateNewsList();

    }, 5000);
}
function updateNewsList() {
    var req = getXmlHttp()
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200) {
                console.log("Ответ сервера: " + req.responseText);//выводит страницу учитывающую изменения приходящие с сервера
                req.responseText;
            }
        }
    }
    var url = "/MyApp/faces/jsf/newsList.xhtml";
    req.open('GET', url, true);
    req.send(null);  
}
function getXmlHttp() {
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}


Проблема заключается в том что в лог выводит страницу учитывающую изменения приходящие с сервера. а в браузере не отрисовывает ничего. Понимаю, что я где-то ,наверное что-то не учел, но что -не знаю.
За тыканье носом буду благодарен.
...
Рейтинг: 0 / 0
04.08.2014, 22:54
    #38712609
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
...
Рейтинг: 0 / 0
04.08.2014, 22:55
    #38712610
user89
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
alex021,

в этом фрагменте вместо req.responseText; попробуйте что-то типа
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            if (req.status == 200) {
                console.log("Ответ сервера: " + req.responseText);//выводит страницу учитывающую изменения приходящие с сервера
           MyDiv.innerHTML = req.responseText;
            }
        }
    }
...
Рейтинг: 0 / 0
05.08.2014, 00:04
    #38712636
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
user89,skyANA

спасибо)
получилось что-то вроде
Код: javascript
1.
2.
3.
4.
5.
6.
7.
...
           if (req.status == 200) {
                console.log("Ответ сервера: " + req.responseText);
                document.getElementById('myId').innerHTML = req.responseText;

            }
            ...


только получается, что вместо этого элемента "myId" рисуется полностью новая страница (получается страница в странице). что не хорошо=) можно ли как-то отправить на перерисовку именно тот элемент который я хочу , а не всю страницу вызовом метода "req.responseText" ?
...
Рейтинг: 0 / 0
05.08.2014, 00:34
    #38712642
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
решил проблему
вот так
Код: javascript
1.
2.
3.
doument.open;
document.write(req.rrsponseText);
document.close();


нокакто мне кажется что это все равно не совсем грамотно.
фича ajax же втом что он погружаетонтент неперерисовывая полносью сраницу , а только часть ее. или я ошибаюсь? подскате,знающие, пожалуцста!
...
Рейтинг: 0 / 0
05.08.2014, 07:39
    #38712684
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJAX / Custom function / do not rerender page
alex021, по ссылке выше много чего полезного для Вас написано.
Например, если нажать Previous, то Вы перейдёте на страницу: AJAX Introduction , - где написаноWhat is AJAX?AJAX allows web pages to be updated asynchronously by exchanging small amounts of data with the server behind the scenes . This means that it is possible to update parts of a web page, without reloading the whole page .
Если Вы пишите "собственную функцию, которая будет подгружать на страницу контент с помощью технологии ajax" чисто ради изучения, то придумайте задачу, когда надо подгружать небольшую порцию данных и обновлять только ту часть страницы, где эти данные должны быть показаны пользователю.
Всю страницу запрашивать посредством AJAX смысла не вижу.

Если же Вам нужно решить какую-то конкретную задачу, то посмотрите в сторону iframe .
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / AJAX / Custom function / do not rerender page / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]