Добрый день! Использую jqplot 1.0.8r1250,
jquery 1.10.2 / 1.9.1 из комплекта jqplot / 1.4.3 (на сайте разработчика сказано, что для некоторых функций нужна версия 1.4.3)
Используются:
jqplot.barRenderer.min.js
jqplot.canvasAxisTickRenderer.min.js
jqplot.categoryAxisRenderer.min.js
jqplot.dateAxisRenderer.min.js
jqplot.cursor.min.js
jqplot.highlighter.min.js
jqplot.canvasAxisLabelRenderer.min.js
jqplot.canvasTextRenderer.min.js
jqplot.pointLabels.min.js
Строю и столбчатые, и линейные графики, независимо от их количества на странице во многих браузерах и на многих компьютерах (тенденция пока не ясна) страница зависает (выдается сообщение о том, что похоже скрипт не отвечает и все в этом духе). Если остановить скрипт на каком-то этапе - некоторые графики построятся, некоторые - нет, последовательно. В консоли все чисто. В этот момент на сервере падает апач (на разных серверах). С другими страницами и сайтами в этих браузерах/компах все ок. Иногда зависание графиков начинается не сразу, а через пару-тройку загрузок страницы (переполнение кэша?..). Иногда в консоли ошибок появляется:
Цитата:
|
Ошибка: uncaught exception: [Exception... "An invalid or illegal string was specified" code: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)" location: "бла-бла-бла jquery.jqplot.js Line: 7685"]
|
Строка 7685:
ctxPattern.lineTo(points[i][0], points[i][1]);
Это все происходит в методе $.jqplot.ShadowRenderer.prototype.draw.
Если я правильно понимаю, что-то с отрисовкой на canvas, с несоответствием типов или отсутствием данных?..
Пример построения графика:
var axisDates = ['14 октября','15 октября','16 октября','17 октября','18 октября','19 октября','20 октября'];
var chartData = [['14 октября', 0,'14 октября'],['15 октября', 0,'15 октября'],['16 октября', 0,'16 октября'],['17 октября', 0,'17 октября'],['18 октября', 0,'18 октября'],['19 октября', 0,'19 октября'],['20 октября', 0,'20 октября']];
j.jqplot.config.enablePlugins = true;
var plot2 = j.jqplot("chart_div_points_1", [chartData], {
title:'Название',
seriesDefaults:{
renderer: j.jqplot.BarRenderer,
rendererOptions: {
barPadding: 5,
barMargin: 5,
barDirection: 'vertical',
barWidth: 98,
animation: {
show: true,
speed: 2500
}
},
color:'#2E6E9E',
pointLabels: { show: false }
},
axes: {
xaxis: {
renderer: j.jqplot.CategoryAxisRenderer,
numberTicks: 0,
},
yaxis: {
tickOptions: {
formatString: '%d',
show: false
},
label:'Подпись оси',
labelRenderer: j.jqplot.CanvasAxisLabelRenderer,
labelOptions : {
angle: -90
},
numberTicks: 0,
max: 505,
min: 0
}
},
highlighter: {
show: true,
tooltipContentEditor: function(str, seriesIndex, pointIndex, jqPlot) {
var param = jqPlot.data[seriesIndex][pointIndex][1];
var date = jqPlot.data[0][pointIndex][2];
var html = "<div>";
html += date;
html += " <br>Значение : ";
html += param;
html += "</div>";
return html;
},
sizeAdjust: 2,
showTooltip: true,
tooltipLocation: 'n',
fadeTooltip: true
},
cursor: {
show: false,
zoom: false,
showTooltip: false,
showTooltipGridPosition: false
},
grid: {
drawGridLines: false
}
});
Подскажите, пожалуйста, куда копать?