Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с мультибраузерностью (AJAX), использую JsHttpRequest 
:(
    Опции темы
Yonick
Дата 12.4.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Решил познакомится с Ajax, а именно с JsHttpRequest. Решил сделать поаккуратнее, написал и выделил в отдельный файл кусок кода: 

Код

var httpRequest = new JsHttpRequest();
var resultId = '';

//function which sends request
function sendRequest(file, _resultId, getRequestProc) {  //(adress,id of html element,answer hendler)
        resultId = _resultId;
        document.getElementById(resultId).innerHTML = '<center>Подождите, идет загрузка...</center>';
        httpRequest.open(null, file, true);
        httpRequest.onreadystatechange = getRequestProc;
        httpRequest.send(null);
}
//hendler
function getRequest() {
        if (httpRequest.readyState == 4) {
            document.getElementById(resultId).innerHTML = httpRequest.responseText;
        }
}


Включаю этот файлик в фронтенд и отправляю запрос:    

Код

<a href="#" onClick="javascript:sendRequest('subjects.php', 'subjects_res', getRequest);">Subjects</a>


На стороне сервера все выглядит примерно так:

Код

require_once "data/JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$subjects=array('Item_1','Item_2','Item_3');
foreach($subjects as $subj){
        echo '<li><a href="#"  onClick="javascript:sendRequest(\'content.php\', \'result\', getRequest);">'.$subj.'</a></li>';
}


И вот все это дело работает только в мозилле! (Проверял в MyIE, Opera и Mozilla). 
Если кто знает в чем проблема, буду очень признателен! 
Заранее спасибо!

Это сообщение отредактировал(а) Yonick - 12.4.2007, 23:24
PM MAIL   Вверх
Sardar
Дата 13.4.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 3
Всего: 317



Выкладывай ссылку на страницу. В примере всё в порядке.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
smartov
Дата 13.4.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



Yonick, заодно со страничкой хотелось бы узнать почему вы выбрали JsHttpRequest, а не XmlHttpRequest собственно
PM MAIL   Вверх
SelenIT
Дата 13.4.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: нет
Всего: 401



Цитата(smartov @  13.4.2007,  21:24 Найти цитируемый пост)
почему вы выбрали JsHttpRequest, а не XmlHttpRequest собственно

smartov, так ведь JsHttpRequest, насколько мне известно, использует внутри себя XmlHttpRequest везде, где можно, и только в экстренных случаях типа вымерших 7-х Опер переключается на эксклюзивный котеровский подход с динамическим тегом <script>... или я не про ту JsHttpRequest подумал?



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
smartov
Дата 13.4.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: нет
Всего: 259



SelenIT, ну как бы JsHttpRequest (как XmlHttpRequest), насколько я знаю, это подход, а не либа. Именно завязанный на динамическом <script>.
Или у меня неверная инфа?
PM MAIL   Вверх
SelenIT
Дата 13.4.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: нет
Всего: 401



Из моих наблюдений за эволюцией этой штуки (напр. здесь, и на XPoint'е что-то было, но сейчас не могу найти) сначала это действительно был самостоятельный подход, который Котеров сам придумал и воплотил в одноименной либе. Но начиная со второй версии либы она автоматом выбирает между стандартным и нестандартным подходами - ради эффективности, совместимости с Safari и т.п. Причем эти нюансы инкапсулированы внутри, а снаружи работа либы выглядит (по крайней мере, теоретически) везде единообразно...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Alx
Дата 13.4.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



знаете, может звучит глупо.. но:
я с другими библиотеками не работал, но эта самая лучшая.
вот честно.. никаких недостатков..


--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 13.4.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 3
Всего: 317



Цитата(SelenIT @  13.4.2007,  21:46 Найти цитируемый пост)
который Котеров сам придумал и воплотил в одноименной либе

На самом деле динамическую подзагрузку скриптов ещё с ИЕ5.5 использовать начали, метод не новый. Но либа действительно выполнена качественно, постепенно вобрала в себя самое лучшее и сейчас использует XMLHttpRequest везде, где это возможно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
SelenIT
Дата 14.4.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: нет
Всего: 401



Цитата(Sardar @  13.4.2007,  23:27 Найти цитируемый пост)
динамическую подзагрузку скриптов ещё с ИЕ5.5 использовать начали, метод не новый

Может быть. Но помню, что в обсуждении тогда ещё только идеи котеровской либы на XPoint'е никто так и не смог найти ни одной ссылки на более ранние прецеденты реализации такого подхода, несмотря на прямую просьбу автора. Кстати, для общей эрудиции буду весьма благодарен за таковые! smile


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Yonick
Дата 15.4.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Sardar, дело в том что все только на стадии разработки поэтому нечего выкладывать. По идее все должно работать, поскольку JsHttpRequest и разрабатывался чтобы упростить жизнь разработчикам, но не тут-то было не фурычет зараза smile .

smartov, насколько я понимаю JsHttpRequest более универсален. Используя XMLHttpRequest я столкнулся с проблемами кодировки при возврате результата запроса с сервера, это и послужило первой причиной поиска более оптимальных решений! Но пока не очень плодотворно:(
PM MAIL   Вверх
Alx
Дата 15.4.2007, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



JsHttpRequest это ajax-библиотека, использующая различные методы реализации подгрузки данных, в т.ч. XMLHttpRequest, с сервера, для разных браузеров и т.п. + многие другие полезные функции.

XMLHttpRequest - это одна из возможных технологий подгрузки данных.


--------------------
PM MAIL WWW ICQ   Вверх
Yonick
Дата 21.4.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.10.2006

Репутация: нет
Всего: нет



Проблема с отображением решена! Все дело в том что не нужно  было выводить результат в бэкенде через echo.
Нужно присваивать все переменной $_RESULT а обрабатывать через responseJS!

Но тут возникает новый вопрос:  Как обрабатвать responseJS? Я передаю $_RESULT массив строк "subj". 
$_RESULT   = array ("subjects" => $subj);

Как мне обрабатывать httpRequest.responseJS.subjects чтобы вывести на экран все элементы массива?

PM MAIL   Вверх
Alx
Дата 21.4.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 6
Всего: 78



Цитата(Yonick @  21.4.2007,  18:30 Найти цитируемый пост)
Все дело в том что не нужно  было выводить результат в бэкенде через echo.
Нужно присваивать все переменной $_RESULT а обрабатывать через responseJS!

эврика!

Цитата(Yonick @  21.4.2007,  18:30 Найти цитируемый пост)
Но тут возникает новый вопрос:  Как обрабатвать responseJS? Я передаю $_RESULT массив строк "subj". 
$_RESULT   = array ("subjects" => $subj);

Как мне обрабатывать httpRequest.responseJS.subjects чтобы вывести на экран все элементы массива?

какие все элементы? если $subj это строка, то из скрипта - responseJS.subjects. если массив -  responseJS.subjects[n]


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.