Привет всем,
Я разрабатываю небольшое веб-приложение, основанное на множестве PHP и JS-кода, и случайно открыл текущий index.php в Firefox вместо Chrome (мой главный браузер для разработчиков).
Я был шокирован, увидев, что один из моих основных компонентов, график (сделанный с amCharts), не был вообще выполнен. Как ни странно, водяной знак amCharts показан …
Теперь я подумал, что это просто hickup, и открыл IE, чтобы иметь другой браузер для сравнения, однако, та же проблема.
Я вернулся в Хром, и там все хорошо. Это действительно смутило меня и заставило меня думать, что это проблема кода, например, где-то закрытая скобка. Поэтому я скопировал код в несколько PHP / JS / HTML-валидаторов, и ни у кого не было никаких хитов.
Кроме того, я загрузил аддон Firebug для Firefox, надеясь найти какую-то ошибку, но его не найти.
То, что я также попытался вставить в мой код несколько проходов «console.log», чтобы проверить, прекратится ли выполнение кода в какой-то момент, не повезло. Все сообщения журнала отображаются с их правильными значениями.
Прямо сейчас я доволен своей остротой …
У кого-нибудь есть идея / есть аналогичная проблема и знает, как решить это или что вызывает это или как я могу узнать, что вызывает это?
Любая помощь, которую вы можете предоставить, будет очень признательна.
с наилучшими пожеланиями, daZza
РЕДАКТИРОВАТЬ:
Я отлично настроил команды console.log и в основном отступал каждый шаг. Теперь я нашел проблему, но не знаю ее источника. В принципе, мой взгляд на логику в программировании разрывается сейчас … Одна и та же команда возвращает другой результат в другом браузере, какого черта ?!
Вот некоторые фрагменты кода из проблемной области:
xmlData = xmlHttp.responseXML; var x=xmlData.getElementsByTagName("row"); xmlRowCount = x.length; console.log("Rowcount: " + xmlRowCount); for (i=0;i<xmlRowCount;i++) { do something with every row in the source xml file }
Теперь проблема в том, что в Chrome rowcount правильно возвращается как 417. FF возвращает 0 (я думаю, IE тоже).
Как это возможно? Как предопределенная команда возвращает разные значения? Я просто не понимаю …
Edit2: Чтобы завершить проверку браузера, я также загрузил и протестировал Opera. Там прекрасно работает, что делает все это еще более странным. В чем разница между IE / FF и Chrome / Opera?
PS: Вот два скриншота (Chrome и FF), чтобы визуализировать проблему:
Можете ли вы попытаться использовать приведенный ниже код
var x=xmlData.body.all.tags("row");
или
var x=xmlData.all.tags("row");
Надеюсь, поможет.