2011-12-21 8 views
9

He aislado una carcasa con jqPlot que hace que se "cuelgue" (detenerse indefinidamente) el javascript de toda mi página. Esto sucede cuando se utiliza la DateAxisRenderer en un gráfico de líneas con un solo valor de este modo:¿Por qué el DateAxisRenderer de jqPlot falla al mostrar un solo punto de datos?

(function() { 
    $(function() { 
    var data, now, plot1; 
    now = new Date; 
    // single data point in the series: 
    data = [[now, 1]]; 
    return plot1 = $.jqplot("plotTarget", [data], { 
     axes: { 
     xaxis: { 
      // if I remove this renderer, the "crash" does not happen: 
      renderer: $.jqplot.DateAxisRenderer 
     } 
     } 
    }); 
    }); 
}).call(this); 

¿Por qué sucede esto? ¿Es esto un error en jqPlot o estoy haciendo algo mal?

También noté: si agrego más valores con la misma fecha en la serie, ocurre el mismo problema. Si agrego más valores con diferentes fechas, el problema desaparece.

Estoy usando jQuery v1.6.4, jqPlot v1.0.0b2_r1012 y renderizado en Firefox 8.0.1.

+1

acaba de encontrar el mismo problema ... – Martin

+1

No es una solución no oficial de este error a dateAxisRenderer.js en https://bitbucket.org/tomasc/jqplot/changeset/42d2445cdd45, pero tendrá que clonar el repositorio o copiar los cambios manualmente. – Kryptic

Respuesta

6

Al destellar en el código DateAxisRenderer, se muestra que el complemento intenta calcular un valor mínimo y máximo para determinar los tics. Esto simplemente sugiere que el autor implica que una serie consiste en un mínimo de dos puntos de datos. Y esto no se indica en los documentos ni se ingresa en el código por eso el complemento "falla".

En la lista de errores de jqplot, el bug ya está archivado (hace 4 días el 21 de enero de 2012).

0

También me he enfrentado a este problema hoy, lo que me sorprendió fue el mismo código que funcionaba con jsfiddle donde usaba scripts de Bitbucket.

Estaba usando jqplot con ASP.NET MVC y había descargado las secuencias de comandos jqplot usando la extensión nuget, resultó que la extensión había descargado la versión anterior de jqplot que causó el problema.

Así que, simplemente cambiando mi antiguo DateAxisRender.js al nuevo actualizado de here, resolvió mi problema o también puede descargar la última versión de this page.

que había creado un demo at jsfiddle

Cuestiones relacionadas