imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 26.12.2007, 11:42     # 1
PhoeniX
Advanced Member
 
Аватар для PhoeniX
 
Регистрация: 12.05.2004
Пол: Male
Сообщения: 482

PhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собой
Ajax в Opera, не проходит запрос

В общем ситуация сложная (или я уже настолько запутался), попытаюсь объяснить:
есть две функции посылки запросов на сервер и соответственно 2 обработчика, необходимо при некотором условии вызывать 2 запрос к серверу из обработчика ответа 1-го запроса, вот 2 запрос не проходит (в opera, в ie и ff - нормально),
если же функцию второго обработчика вешать как событие на какой-нибудь элемент, то и в опере при наступлении этого события 2-ой запрос выполняется нормально.

Собственно вопрос - как устранить баг?
ну и интересно, почему так происходит?

Понимаю, что объяснил довольно сбивчиво, но лучше что-то ничего в голову не лезет.


Соответственно пример кода в прилагаемом архиве:
index.php - пример кода с багом
index2.php - пример, когда второй запрос повешен на кнопку и все работает
get1.php, get2.php - обработчики запросов
Вложения
Тип файла: rar test.rar (2.6 Кбайт, 2 просмотров - Кто скачивал? )
__________________
Этот мир для таких, как мы,
Этот мир обречен на нас,
Но реальность не изменить,
И живем мы в ней здесь и сейчас.
(C) С.Маврин
PhoeniX вне форума  
Старый 26.12.2007, 14:58     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Ты приведи пример кода. В каком месте происходит ошибка. Тебе скажут как обойти.
RaZEr вне форума  
Старый 26.12.2007, 15:33     # 3
PhoeniX
Advanced Member
 
Аватар для PhoeniX
 
Регистрация: 12.05.2004
Пол: Male
Сообщения: 482

PhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от RaZEr Посмотреть сообщение
Ты приведи пример кода. В каком месте происходит ошибка. Тебе скажут как обойти.
Пример в приложенном архиве,
ошибки как таковой нету, если верить консоли ошибок оперы.

Конкретно:
вот так вот не работает (кусок из файла index.php):
Код:
function GetSubSectionsAndElementsResponce()
{
    if (xmlHttp.readyState==4)
    {
        if (xmlHttp.status==200)   			
        {
	var xmlResponse=xmlHttp.responseXML;
	var xmlDocumentElement=xmlResponse.documentElement;
	var idel=xmlDocumentElement.getElementsByTagName("idel");

	if (idel.item(0))
	{
	    GetAutoByElement(idel.item(0).firstChild.data);
	}
        }
        else window.alert("При обращении к серверу возникли проблемы: "+xmlHttp.statusText);
    }
}
а вот так работает (кусок из файла index2.php):
Код:
function GetSubSectionsAndElementsResponce()
{
    if (xmlHttp.readyState==4)
    {
        if (xmlHttp.status==200)   			
        {
	var xmlResponse=xmlHttp.responseXML;
	var xmlDocumentElement=xmlResponse.documentElement;
	var idel=xmlDocumentElement.getElementsByTagName("idel");
             if (idel.item(0))
	{
	    var element=document.getElementById("calc_form");
	    var child=document.createElement('input');
	    child.name="autobutton";
	    child.type="button";
	    child.value="click";
	    child.onclick=function() {GetAutoByElement(idel.item(0).firstChild.data);}
                 element.appendChild(child);
            }
        }
        else window.alert("При обращении к серверу возникли проблемы: "+xmlHttp.statusText);
    }
}
Разница лишь в том, что в нерабочем случае сразу вызывается следующий запрос, а в рабочем - вызов следующего запроса повешен на клик кнопки.

ИМХО, для понимания нужно посмотреть весь код, который в архиве, а не только эти 2 куска.
__________________
Этот мир для таких, как мы,
Этот мир обречен на нас,
Но реальность не изменить,
И живем мы в ней здесь и сейчас.
(C) С.Маврин
PhoeniX вне форума  
Старый 07.01.2008, 03:20     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Может я чего-то не понимаю, но как в index.php при клике на любую из цифр (19,20,21) получаю алерт "toyota" что в FF что в Opera (версия 9.25), на сколько я понял, так и должно быть.
В index2.php наблюдается также одинаковое поведение в двух вышеуказанных браузерах, только при каждом выборе плодится кнопка, и для получении алерта с тойотой, надо тыркнуть еще на любую из них...
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 07.01.2008, 04:59     # 5
PhoeniX
Advanced Member
 
Аватар для PhoeniX
 
Регистрация: 12.05.2004
Пол: Male
Сообщения: 482

PhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собойPhoeniX Имеются все основания чтобы гордиться собой
Hubbitus, ты все правильно понял. Сейчас скачал оперу 9.25 - действительно все сработало как и должно.

Вопрос стоит переформулировать - не работает на опере до какой-то определенной версии (точно не работает на 9.02 и 8.х (точную версию не помню - на работе осталась)).

Вероятно, это баг браузера, который поправили, и если это так, то, скорее всего, решения проблемы, кроме как обновление оперы, найдено не будет
__________________
Этот мир для таких, как мы,
Этот мир обречен на нас,
Но реальность не изменить,
И живем мы в ней здесь и сейчас.
(C) С.Маврин
PhoeniX вне форума  
Старый 07.01.2008, 13:43     # 6
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Ну если баг, то скорее всего есть и WorkAround - осталось только понять в чем именно баг.

К сожалению на сайте Оперы самая старая для скачивания 9.10 ( http://www.opera.com/download/index....m=Linux%20i386 ) так что не могу даже посмотреть... Попробую найти старее, тогда уже и говорить можно будет.

Ну а вообще, для подобного, просто рекомендую использовать какие-нибудь кроссбраузерные библиотеки, хоть Котияровский JSHTTPRequest, хоть Prototype, хоть от Гугла или яху, по душе AJAX-фреймворк подобрать. Они тем и хороши, что люди именно ими занимаются, долгое время оттачивают, исправляют баги, и в том числе, реализуют поведение для работы поверх подобных недочётов браузеров.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 07.01.2008 в 13:46.
Hubbitus вне форума  
Старый 07.01.2008, 16:06     # 7
Псих
::VIP::
Guinness Liker
Понаехало тут
 
Аватар для Псих
 
Регистрация: 26.01.2003
Адрес: В нейроне
Пол: Male
Сообщения: 2 848

Псих СуперБогПсих СуперБог
Псих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБогПсих СуперБог
Цитата:
Сообщение от PhoeniX Посмотреть сообщение
Вероятно, это баг браузера, который поправили, и если это так, то, скорее всего, решения проблемы, кроме как обновление оперы, найдено не будет
От себя замечу, что недавно была версия Оперы, в которой резко перестала работать добрая половина сервисов Google (календарь, Docs и т.д)
__________________
меня не вылечат
Псих вне форума  
Старый 16.01.2008, 12:05     # 8
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
PhoeniX, посмотрел в Опере 9.10 - могу подтвердить - действительно не работает

Я при беглом осмотре и паре попыток не смог обнаружить как это обойти.

Однако, не вижу смысла и разбираться с этим Багом (теперь хоть понятно что это так, и оно даже исправлено уже в новых версиях) - майнтейнеры библиотек пусть с этим возятся, на мой взгляд. Если очень интересна причина, по их же форумам и багтрекерам надо лазить.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:52.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.