Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > AJAX, максимальный объем данных


Автор: anthonyBoard 30.11.2008, 01:56
Здравствуйте, товарищи!

У меня сегодня возник вопрос по максимально возможному объему данных, который можно передать в XMLHttpRequest.

Проблема заключается в следующем: я передаю достаточно большые объемы данных через AJAX, помимо различных элементов HTML и прочего, одновременно со всем этим передаю еще и JavaScript скрипты. И заметил что в Mozilla (проверял на версии 2) данные доходят не полностью! В IE, Opera - все прекрасно, а в Mozilla как-будто не до конца приходит нужный скрипт. Методом проб, заметил, как мне кажется, что в Mozilla через XMLHttp приходят спокойно документы до 10 KB, все что свыше - обрезается. Действительно ли это так? И есть ли выход из этой ситуации? Не очень хочется фреймами пользоваться.

Данные передаю в XML формате в кодировке UTF-8.

Заранее премного благодарен за помощь!

Автор: anthonyBoard 30.11.2008, 13:40
Все-таки возможно это у меня где-то ошибка в приходящих XML.
Сделал textarea и в него запихивал приходящий XML текст. Все в нем приходит как надо, однако Mozilla валится при eval скрипта:
Код

script = result.getElementsByTagName('script')[0].firstChild.data;
try{
    if(window.execScript){
        window.execScript(script);
    }else{
        window.eval(script);
    }
}catch(exception){
    alert('Error: couldn\'t eval script attached with list module');
}


вот на этом куске кода вылетает Mozilla и естественно Error: couldn't eval script attached with list module.

Автор: anthonyBoard 30.11.2008, 13:56
Еще разведал, firstChild.data почему-то не все берет из <script>...</script>.
Т.е. до определенного момента считывает содержимое "<script>", соответственно в этом и есть причина, поэтому eval и не может выполниться нормально.
Почему Mozilla не доконца берет внутренности?


Автор: anthonyBoard 30.11.2008, 17:05
Очередные тесты по данному вопросу показали, что в Mozilla firstChild.data берет максимум 10 Кб данных из контента тега.
Можно конечно обойти это разбивая теги по 10 Кб и потом в браурезе их объединять и eval'ить полученный скрипт, но мне кажется это некрасиво.

Как с этим бороться? Может в Mozilla можно по-другому XML обрабатывать?

Автор: anthonyBoard 30.11.2008, 17:34
Еще в догонку.
Только 4096 символов в Mozilla берет firstChild.data.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)