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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Prototype + Ajax - не работает в IE, FF, Проблемы использования ajax из prototype 
:(
    Опции темы
silvek
Дата 30.8.2008, 03:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возникла очень неудобная проблема при разработке веб-приложения.

вот простой код:

Код

    new Ajax.Request(path,
                 {
                     method:'post',
                     onSuccess: function(r)
                                 {
                                var data_json = r.responseText;
                                //alert(target);
                                var data = data_json.evalJSON();
                                $(target).innerHTML = data.code;
                                eval(data.js);
                                 }
                     }
            );




Код выполняет загрузку информации в режиме 'post' и передает в контенер свой результат.
Возникает проблема - этот скрипт хорошо работает в Opera, но не работает просто так в IE, FF.


Внимание, если расскоментировать 
Код

                                      //alert(target);


То после отображения всплывающего окна и нажатия в нем на "Ок" - в контейнер загрузится информация.
Напомню, что в Опере информация всегда загружается, а в ИЕ и ФФ только после некоторых действий, например, как вышеописанное.

Очевидно, что связано с кешированием информации или чем-то смежным. Например, если добавить в параметр path случайные числа - иногда срабатывает в ИЕ, но потом опять "кешируется".

Насчет того, что получает с сервера аякс.
Кроме контента я посылаю заголовки:
Код

        header("Cache-Control: no-store, no-cache,  must-revalidate"); 
        header("Expires: " .  date("r"));    


Это не помогает. 


Как мне решить такую проблему?

PM MAIL   Вверх
Sannis
Дата 30.8.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

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



Было что-то подобное. Попробуйте сделать задержку перед выполнением:
Код

    new Ajax.Request(path,
            {
                method:'post',
                onSuccess: function(r)
                            {
                                var data_json = r.responseText;
                                var data = data_json.evalJSON();
                                
                                setTimeout('update_target()', 500);
                                
                                function update_target()
                                {
                                    $(target).innerHTML = data.code;
                                    eval(data.js);
                                }
                            }
            }
        );

Надеюсь не напутал с замыканиями smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
silvek
Дата 30.8.2008, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробовал - не очень-то помогает.

Вот если возникет окно alert(...) - то контент обновляется, в противном случае нет. 

Что еще можно попробовать?


P.S. Ужас, ничего не помогает. Если менять размер передаваемого кода, то порой ИЕ загружает все-таки, но после "F5" опять пустота. Он как-будто использует какие-то нетипичные принципы кеширования и отброса информации, возможно, это какие-то системы защиты, sandbox'ы и т.п. Хотя я всего-лишь программирую интерактивное приложение.
Попробовал написать в maillist на гугл - там не отвечают, т.е. я видимо как-то написал по английски неправильно - модераторы не разрешили пост.


Это сообщение отредактировал(а) silvek - 30.8.2008, 14:34
PM MAIL   Вверх
Nigel
Дата 30.8.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



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


 




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


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

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