2011-12-21 7 views
9

मैंने jqPlot के साथ एक अंतिम मामला अलग कर दिया है जो इसे मेरे पूरे पृष्ठ के जावास्क्रिप्ट को "क्रैश" (अनिश्चित काल तक रोकता है) का कारण बनता है। यह तब होता है जब मैं बहुत की तरह एक भी मूल्य के साथ एक लाइन चार्ट में DateAxisRenderer का उपयोग करें:एक डेटा पॉइंट दिखाते समय jqPlot की DateAxisRenderer क्रैश क्यों करता है?

(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); 

इस क्यों होता है? क्या यह jqPlot में एक बग है या क्या मैं कुछ गलत कर रहा हूं?

यह भी ध्यान दिया गया: यदि मैं श्रृंखला में उसी तारीख के साथ अधिक मूल्य जोड़ता हूं, तो वही समस्या होती है। यदि मैं अलग-अलग तिथियों के साथ अधिक मूल्य जोड़ता हूं, तो समस्या दूर हो जाती है।

मैं jQuery v1.6.4, jqPlot v1.0.0b2_r1012 का उपयोग कर रहा हूं और फ़ायरफ़ॉक्स 8.0.1 पर प्रतिपादन कर रहा हूं।

+1

बस एक ही मुद्दा मिल गया ... – Martin

+1

dateAxisRenderer.js को यह बग के एक अनौपचारिक ठीक नहीं है पर https://bitbucket.org/tomasc/jqplot/changeset/42d2445cdd45, लेकिन आपको या तो रेपो क्लोन करना होगा या मैन्युअल रूप से परिवर्तनों की प्रतिलिपि बनाना होगा। – Kryptic

उत्तर

6

DateAxisRenderer के कोड पर ग्लिमिंग से पता चलता है कि प्लगइन टिक निर्धारित करने के लिए न्यूनतम और अधिकतम मूल्य की गणना करने का प्रयास करता है। यह बस सुझाव देता है कि लेखक का तात्पर्य है कि एक श्रृंखला में कम से कम दो डेटापॉइंट होते हैं। और यह दस्तावेज़ों में नहीं बताया गया है या कोड में चेक किया गया है कि प्लगइन "क्रैश" क्यों है।

jqplot में बगट्रैकिंग सूची bug पहले से ही दायर की गई है (4 दिन पहले 21 जनवरी 2012 को)।

0

मैं भी आज इस मुद्दे को सामना करना पड़ा था, क्या मुझे हैरान कर दिया एक ही कोड jsfiddle जहाँ मैं Bitbucket से स्क्रिप्ट का इस्तेमाल किया के साथ काम किया था।

मैं एएसपी.नेट एमवीसी के साथ jqplot का उपयोग कर रहा था और nuget एक्सटेंशन का उपयोग करके jqplot स्क्रिप्ट डाउनलोड किया था, यह पता चला कि एक्सटेंशन ने jqplot के पुराने संस्करण को डाउनलोड किया था जिससे समस्या उत्पन्न हुई।

तो, बस नया एक here से अद्यतन करने के लिए मेरे पुराने DateAxisRender.js बदलने, मेरी समस्या हल या आप भी this page से नवीनतम संस्करण डाउनलोड कर सकते हैं।

मैं बनाया था एक demo at jsfiddle

संबंधित मुद्दे