Показать сообщение отдельно
  #1 (permalink)  
Старый 18.12.2013, 16:38
Интересующийся
Отправить личное сообщение для mdlv Посмотреть профиль Найти все сообщения от mdlv
 
Регистрация: 14.05.2012
Сообщений: 16

JQplot вешает браузер
Добрый день! Использую 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 
	}
});


Подскажите, пожалуйста, куда копать?

Последний раз редактировалось mdlv, 18.12.2013 в 17:17.
Ответить с цитированием