сбой кода на стороне сервера только IE? - PullRequest
2 голосов
/ 27 мая 2011

Странная проблема: PHP запускает вложенный foreach, который генерирует строку (в основном календарь, который показывает праздники людей).

Эта строка входит в $data['grid'] и отправляется в представление.var_dump показывает: string(188263)

Строка распечатывается нормально на веб-странице при просмотре в FF и Chrome, но по какой-то причине при просмотре в IE6, 8 и 9 (не тестировалась в 7) происходит сбойбраузер каждый раз;он зависает, и на экране ничего не появляется.

IE может показать строку, когда она распечатывается в контроллере, перед тем, как она будет передана в представление.

Это нормально работает в IE:

print $str; die;
$data['grid'] = $str;
$this->load->view('conge', $data);

Это приводит к аварийному завершению IE:

//print $str; die;
$data['grid'] = $str;
$this->load->view('conge', $data);

Общий «вес» страницы составляет 192 КБ, и JS не работает,Это похоже на проблему с PHP / памятью, но тот факт, что «ошибка» существует только в IE, не имеет особого смысла.

Есть идеи, как это можно отладить?

РЕДАКТИРОВАТЬ: Когда я сохранилрендерит вывод из FF в статический HTML-файл и загружает его в IE.Строка была распечатана без разрывов строки (loooong), но когда я добавляю \ n, проблема сохраняется.В любом случае, на шаг ближе.

EDIT2: Кажется, это связано с ошибками в разметке HTML, которые приводят к сбою IE (?!).Дело закрыто!

1 Ответ

0 голосов
/ 29 мая 2011

Серверный код не может вызвать сбой браузера.

Сгенерированный файл HTML может привести к сбою браузера, поэтому вам нужно внимательно изучить выводимый HTML.

Направьте службу проверки w3c на URL-адрес и посмотрите, что он получит.

Если это не даст результатов, начните комментировать большой раздел заголовка, затем тело и т. Д., Пока вы не получите успешный рендер, тогда вместо этого вы можете исследовать небольшой фрагмент кода.

Кстати, я предполагаю, что 192k включает изображения, CSS и т. Д., Это HTML-файл монстра!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...