Нужна помощь JavaScript программиста 2. AJAX + jquery
Автор
Сообщение
DDUH
[41.4]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Нужна помощь JavaScript программиста.
Нужено сделать возможным загрузку страниц темы при помощи AJAX.
Смотрим код темы , нужно перегружать содержимое этого дива при переходе на другую страницу из этой темы: [code][/code] Как сделать бакэнд я знаю, помогите правильно сделать AJAX вызовы, со всеми проверками и обработками ошибок.
05 июл 2011, 14:55
Лулзач
[1.3]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
[code][/code]
05 июл 2011, 15:51
DDUH
[41.4]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Ошибки как трэкать ?
05 июл 2011, 16:13
Лулзач
[1.3]
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
takeiteasy
[0.1]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
// тут данные которые передаёшь 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
Лулзач
[1.3]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Цитата:
Где там jquery? :)
не заметил в названии темы :) Что-то подумал, что он не юзается, вот только обратил внимание :))
05 июл 2011, 16:26
DDUH
[41.4]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Я наверное не понятно написал, исправлюсь.
Мне не нужны основы AJAX, я их и так знаю. Мне нужен работающий пример, сделанный для нашей страницы, чтобы я мог взять и интегрировать его в портал с минимальными усилиями. Можно на статическом html варианте нашей страницы.
05 июл 2011, 16:29
takeiteasy
[0.1]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
DDUH писал(а):
Я наверное не понятно написал, исправлюсь.
Мне не нужны основы AJAX, я их и так знаю. Мне нужен работающий пример, сделанный для нашей страницы, чтобы я мог взять и интегрировать его в портал с минимальными усилиями. Можно на статическом html варианте нашей страницы.
А чем не нравится то, что я предложил? Это считай уже готовый вариант. Тебе нужно написать только серверную часть, которая генерирует html-таблицу с форматированием и вёрсткой.
05 июл 2011, 16:36
Лулзач
[1.3]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Сорри за небольшой офф топ, но, честно говоря не совсем понимаю один момент: сейчас клиенту передается хтмл поток и меняется на живую. Имхо, это не оч. хорошая практика: куча левого трафика, отсуствие валидации, туда по сути можно пихать что угодно сейчас, хоть целую хтмл-страницу.
лучше передвать только изменяемые данные в формете XML, а в идеале JSON, а табличку генерить на клиенте.
P.S. takeiteasy - по сути прав. Реально, почти готовый пример. Хотя, я бы еще добавил проверку входящих данных, исходящих данных, трекал бы конкретные ошибки, а не все подряд. Ну и так же в зависимости от ситуации, проверял бы, инициализирован ли уже контейнер. Правда, все зависит от необходимости...нужно ли это
05 июл 2011, 16:55
takeiteasy
[0.1]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Лулзач писал(а):
Сорри за небольшой офф топ, но, честно говоря не совсем понимаю один момент: сейчас клиенту передается хтмл поток и меняется на живую. Имхо, это не оч. хорошая практика: куча левого трафика, отсуствие валидации, туда по сути можно пихать что угодно сейчас, хоть целую хтмл-страницу.
лучше передвать только изменяемые данные в формете XML, а в идеале JSON, а табличку генерить на клиенте.
P.S. takeiteasy - по сути прав. Реально, почти готовый пример. Хотя, я бы еще добавил проверку входящих данных, исходящих данных, трекал бы конкретные ошибки, а не все подряд. Ну и так же в зависимости от ситуации, проверял бы, инициализирован ли уже контейнер. Правда, все зависит от необходимости...нужно ли это
Ну да, я не спорю, что лучше. Но как бы сложновато написать код, если не знаешь формата получаемых данных. Я предложил самый очевидный и быстрый вариант, учитывая, что у автора проблемы с клиентским кодом, то логично сделать вывод, что этот код нужно свести к минимуму :)
Если бы DDUH написал что-нибудь вроде: "php передаёт странице данные вида: [{name:'vasya', text:'msg', date:'01.02.2011',avatar:'1.gif'},{name:'petya'...}], сформируйте мне из этого текущую html-страницу при помощи Jquery", то это реально, а так непонятно даже, что мы там получаем - xml или json.
05 июл 2011, 18:45
DDUH
[41.4]
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
Нет, передаётся чистый html, такой же как и сейчас в теле дива. Чтобы перевести всё на JSON нужно переделывать код генератор и переписывать море шаблонов, что меня пока что не устраивает. Более того потеряется совместимость с phpbb, что тоже очень плохо.
Добавлено спустя 1 минуту 21 секунду: Я пробовал его вставлять при помощи аякса, но в 1 случае из 5 страница начинала перегружаться и подвисать, с чем это было связано я не понял пока.
05 июл 2011, 18:53
Tkilla
0
Нужна помощь JavaScript программиста 2. AJAX + jquery
takeiteasy правильно все подсказывает.
допустим тебе надо сделать это на document.ready( может быть любое другое событиe )
На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.