Нужна помощь JavaScript программиста 2. AJAX + jquery  
Автор Сообщение

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Нужна помощь JavaScript программиста.

Нужено сделать возможным загрузку страниц темы при помощи AJAX.

Смотрим код темы optimizaciya-vospriyatiya-foruma-predlojeniya-administracii-t42.html, нужно перегружать содержимое этого дива при переходе на другую страницу из этой темы: [code][/code] Как сделать бакэнд я знаю, помогите правильно сделать AJAX вызовы, со всеми проверками и обработками ошибок.


05 июл 2011, 14:55
Профиль WWW

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
[code][/code]


05 июл 2011, 15:51
Профиль ICQ Skype

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Ошибки как трэкать ?


05 июл 2011, 16:13
Профиль WWW

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Код:
//Проверка на корректный ответ сервера - HTTP: OK; Status: 200
        if (ajaxRequest.status == 200) {


если некорректный то ошибка
ошибки бывают разные...403 - Форбидден...404 - Нот фаунд...501 - Интернал Иррор...тысячи их :)


Код:
if (ajaxRequest.status == 200) {

} else {
    //Значит какая-нибудь ошибка
    if (ajaxRequest.status == 403) Досуп запрещен, например


}


если не важно какая ошибка, то просто можно трекать else в условии
т.е если статус != 200 (OK), то ошибка
можно так же проверить на наличие конкретной ошибки по статусу


05 июл 2011, 16:22
Профиль ICQ Skype

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Где там jquery? :)

Я бы сделал примерно так:

Код:
$.ajax({
                url: '../MyService.svc/GetAllClassWithModels',

                // тут данные которые передаёшь php скрипту,
                // номер страницы, количество записей будут полюбому
                data: { page: page, rows: rows },
                contentType: 'application/json; charset=utf-8',               
                complete: function (servicedata, stat) {
                    // если всё получилось
                    if (stat == 'success') {
                        // добавляем данные из ответа в div
                        $(servicedata.responseText).appendTo('#pagecontent');
                    }
                    else {
                         alert('Ошибка!');
                    }
                }
            });


Ну а сам скрипт возвращает поток в виде html типа:
Код:


Ответить с цитатой

Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery



Привет!






05 июл 2011, 16:22
Профиль

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Цитата:

Где там jquery? :)

не заметил в названии темы :)
Что-то подумал, что он не юзается, вот только обратил внимание :))


05 июл 2011, 16:26
Профиль ICQ Skype

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Я наверное не понятно написал, исправлюсь.

Мне не нужны основы AJAX, я их и так знаю. Мне нужен работающий пример, сделанный для нашей страницы, чтобы я мог взять и интегрировать его в портал с минимальными усилиями. Можно на статическом html варианте нашей страницы.


05 июл 2011, 16:29
Профиль WWW

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
DDUH писал(а):

Я наверное не понятно написал, исправлюсь.

Мне не нужны основы AJAX, я их и так знаю. Мне нужен работающий пример, сделанный для нашей страницы, чтобы я мог взять и интегрировать его в портал с минимальными усилиями. Можно на статическом html варианте нашей страницы.

А чем не нравится то, что я предложил? Это считай уже готовый вариант. Тебе нужно написать только серверную часть, которая генерирует html-таблицу с форматированием и вёрсткой.


05 июл 2011, 16:36
Профиль

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Сорри за небольшой офф топ, но, честно говоря не совсем понимаю один момент:
сейчас клиенту передается хтмл поток и меняется на живую.
Имхо, это не оч. хорошая практика: куча левого трафика, отсуствие валидации, туда по сути можно пихать что угодно сейчас, хоть целую хтмл-страницу.

лучше передвать только изменяемые данные в формете XML, а в идеале JSON, а табличку генерить на клиенте.

P.S. takeiteasy - по сути прав. Реально, почти готовый пример.
Хотя, я бы еще добавил проверку входящих данных, исходящих данных, трекал бы конкретные ошибки, а не все подряд. Ну и так же в зависимости от ситуации, проверял бы, инициализирован ли уже контейнер. Правда, все зависит от необходимости...нужно ли это :unknw


05 июл 2011, 16:55
Профиль ICQ Skype

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Лулзач писал(а):

Сорри за небольшой офф топ, но, честно говоря не совсем понимаю один момент:
сейчас клиенту передается хтмл поток и меняется на живую.
Имхо, это не оч. хорошая практика: куча левого трафика, отсуствие валидации, туда по сути можно пихать что угодно сейчас, хоть целую хтмл-страницу.

лучше передвать только изменяемые данные в формете XML, а в идеале JSON, а табличку генерить на клиенте.

P.S. takeiteasy - по сути прав. Реально, почти готовый пример.
Хотя, я бы еще добавил проверку входящих данных, исходящих данных, трекал бы конкретные ошибки, а не все подряд. Ну и так же в зависимости от ситуации, проверял бы, инициализирован ли уже контейнер. Правда, все зависит от необходимости...нужно ли это :unknw

Ну да, я не спорю, что лучше. Но как бы сложновато написать код, если не знаешь формата получаемых данных. Я предложил самый очевидный и быстрый вариант, учитывая, что у автора проблемы с клиентским кодом, то логично сделать вывод, что этот код нужно свести к минимуму :)

Если бы DDUH написал что-нибудь вроде: "php передаёт странице данные вида: [{name:'vasya', text:'msg', date:'01.02.2011',avatar:'1.gif'},{name:'petya'...}], сформируйте мне из этого текущую html-страницу при помощи Jquery", то это реально, а так непонятно даже, что мы там получаем - xml или json.


05 июл 2011, 18:45
Профиль

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
Нет, передаётся чистый html, такой же как и сейчас в теле дива. Чтобы перевести всё на JSON нужно переделывать код генератор и переписывать море шаблонов, что меня пока что не устраивает. Более того потеряется совместимость с phpbb, что тоже очень плохо.

Добавлено спустя 1 минуту 21 секунду:
Я пробовал его вставлять при помощи аякса, но в 1 случае из 5 страница начинала перегружаться и подвисать, с чем это было связано я не понял пока.


05 июл 2011, 18:53
Профиль WWW

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
takeiteasy правильно все подсказывает.

допустим тебе надо сделать это на document.ready( может быть любое другое событиe )

Код:

        $(document).ready(function() {
            var topicNumber = 123;
            var myServerPartUrl = 'prestige-gaming.ru/gimmemypage.php';
            $.ajax({ type: 'GET', url: myServerPartUrl, data: { topic: topicNumber }, dataType: 'json',
                error: function() { alert('oops!'); },
                success: function(content) { $('#pagecontent').html(content); }
            })
        });


05 июл 2011, 21:59
Профиль

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
DDUH писал(а):

Я пробовал его вставлять при помощи аякса, но в 1 случае из 5 страница начинала перегружаться и подвисать, с чем это было связано я не понял пока.

Если данные не возвращаются - значит возникает какая-то ошибка. Посмотри в фаербаге, что там именно происходит.


06 июл 2011, 06:43
Профиль

0
Сообщение Нужна помощь JavaScript программиста 2. AJAX + jquery
takeiteasy писал(а):

DDUH писал(а):

Я пробовал его вставлять при помощи аякса, но в 1 случае из 5 страница начинала перегружаться и подвисать, с чем это было связано я не понял пока.

Если данные не возвращаются - значит возникает какая-то ошибка. Посмотри в фаербаге, что там именно происходит.

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


06 июл 2011, 10:25
Профиль WWW
Начать новую тему Ответить на тему


Перейти:  

На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.
Рейтинг@Mail.ru