#fusioncharts
#диаграммы слияния
Вопрос:
У меня есть страница с несколькими диаграммами, отображаемыми с использованием диаграмм слияния, и я извлекаю большой объем данных из базы данных для их заполнения. Время ожидания некоторых диаграмм истекает, и они имеют непрерывный счетчик, http-запрос прерывается. та же диаграмма отображается, если URL-адрес для этой диаграммы отдельно запущен в браузере. Я увеличил значение времени ожидания для вызова jquery.ajax, но это не работает, я предполагаю, что время ожидания истекает на уровне flash Player.В любом случае, чтобы справиться с этой проблемой тайм-аута?
Комментарии:
1. Это потому, что время ожидания сценария на стороне сервера истекает?
Ответ №1:
Существуют различные причины, по которым это может произойти, а также существует ряд обходных путей.
- Используете ли вы последнюю версию диаграмм слияния? Если нет, то обновление было бы хорошей идеей. Более новая платформа JavaScript FusionCharts использует AJAX для извлечения данных. Это может оказаться более стабильным и надежным для вас. Если вы уже используете последнюю версию, убедитесь, что вы не используете какой-либо устаревший API (например
.setDataURL
) и что вы не используете чистый метод встраивания HTML. - Возможно также, что вы пытаетесь поместить слишком много точек данных, чем рекомендуется, и нагрузка просто слишком велика для отображения всех диаграмм. как правило, графики отображаются нормально с 300-500 точками (и даже выше, если конфигурация простая). Круговые диаграммы полезны до 100 пунктов. Если у вас слишком много данных, попробуйте использовать
ZoomLine
диаграмму. - Другой причиной может быть нагрузка на сеть. Слишком много данных, пытающихся одновременно загружаться, приводит к тому, что браузер прерывает соединения / истекает время ожидания. У вас медленное соединение или более старый браузер? Попробуйте загружать диаграммы по цепочке в шахматном порядке (т. Е. Когда на одной диаграмме происходит
FC_Rendered
событие, визуализируйте следующую… и так далее.) - Вы также можете попробовать выборку данных напрямую с помощью jQuery AJAX, и когда все данные будут загружены, вы можете начать рендеринг диаграмм, отправив данные в виде
XML
строки с помощью.setXMLData()
.
Вы также можете проверить, происходит ли это, даже если вы используете вариант диаграмм на JavaScript. Если нет, то вы можете придерживаться его использования.
PS: Отвечаю так поздно… но если вы все еще находитесь в цикле, это может помочь. 😛
Комментарии:
1. Привет, Шамасис, спасибо за входные данные и предложения. Мы попробовали внести некоторые изменения и смогли устранить эту проблему, используя сводные таблицы в серверной части. Время ожидания графиков истекло, поскольку извлечение данных было очень медленным из-за нескольких графиков на одной странице. И теперь мы используем версию диаграмм на JavaScript, поскольку они легче и поддерживаются лучше.
2. @pri_dev Итак, проблема заключалась в основном в том, что время ожидания на стороне сервера истекло или в AJAX / сетевом транспорте? Вы пробовали поэтапный / цепной подход к загрузке, о котором я упоминал в пункте 3?