2012-06-07 3 views
0

У меня возникает проблема, когда я пытаюсь отобразить гистограмму с большим количеством точек данных. Но это происходит только в FireFox. Всплывающее окно показывает, что говорит невосприимчивый скрипт через 10 секунд &, если я продолжу, для отображения потребуется около 20 секунд. Я установил отдельный пример http://jsfiddle.net/tankchintan/UWB8h/5/Невосприимчивый сценарий и/или высокое время отклика для гистограммы с использованием HighCharts

В Chrome, хотя он занимает около 5 секунд, он по-прежнему работает без проблем. Мне было интересно, есть ли это для этого? Или я могу что-то сделать, чтобы получить время отклика? Есть около 1000 строк, которые ИМХО не так высоки.

Спасибо за помощь!

ответ

2

Вы вредят пользователей двумя способами:

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

  • , но что более важно , вы причиняете им боль, потому что вы показываете гистограмму с почти 1000 горизонтальными барами!

Второй вопрос на самом деле более важен. Конечно, браузеры различаются по производительности JavaScript (известно, что Chrome работает быстрее, однако Firefox не зависает на моем компьютере, но я знаю, что вы имеете в виду). Вероятно, в один прекрасный день все браузеры будут счастливо отображать эту диаграмму в режиме бездействия.

Но будут ли ваши пользователи оценены диаграмма длиной 10 экранов? Представьте себе веб-страницу с thousands of rows in a single table. По сути - подумайте о разных представлениях данных: возможно, усечь данные после 20 образцов и отобразить дополнительные «Другие ...« бар?

BTW У меня была аналогичная проблема с . Я просмотрел 10 + простые диаграммы на одной странице. Как и в вашем случае, Firefox кричал о том, что скрипт работает слишком долго. Я исправил его, сделав один график за раз с паузами. Страница работает как шарм, гораздо более отзывчива и приятна.

+0

Я согласен на оба пункта, полностью. Фактически это vis является одной частью страницы, и все остальные компоненты загружаются довольно быстро. Я собирался работать по сокращению количества образцов или вообще удалять горизонтальные полосы. Мне было просто интересно узнать, есть ли у 1000 рядов разумная верхняя граница? Если нет, то есть способы уменьшить время отклика. – Chantz

+2

@Chantz Я не думаю, что 1000 является разумным верхним пределом. Если один бар толщиной 20 пикселей, вы все равно получите ок. 20 экранов ... Я бы сказал, 20/50/100 в зависимости от макета разумно.Не ожидайте, что JavaScript-движок (динамический, собранный из мусора язык) будет достаточно быстрым, чтобы отображать столько графики. –

0

Я согласен с трудностью отображения этого количества точек данных. Это происходит, в основном, в FF и в других типах диаграмм, в моем случае - в столбце.

Разница здесь в том, что могут быть причины для показа тенденции по большому набору данных, а функция Highcharts Zoom делает такие графики более полезными. Пользователь может обнаруживать высокие точки и аномалии в большем наборе и увеличивать масштаб, чтобы просмотреть отдельные столбцы в этом регионе. Также с диаграммами столбцов вся презентация находится на одной странице.

Тем не менее, проблема с нерешенным сценарием остается, и, независимо от этого требования, необходимо будет потребовать от пользователя указать подмножество данных перед рендерингом диаграммы.

Смежные вопросы