üzerinde gezinirken glitch'i yeniden çizme ChartJS kütüphanesinden yararlanan aşağıdaki koda sahibim.ChartJs çizgi grafiği
/*assume the tags in the right place */
<canvas id="graph1" width="300" height="300"></canvas>
var ctx = $("#graph1").get(0).getContext("2d");
var myChart = new Chart(ctx).Line(graph1Generator("day"));
... her şey iyi çalışır, ancak temizlemek ve farklı veri ile aynı grafiği yeniden boyamak için aşağıdaki olay işleyicisi ekledikten sonra, bir aksaklık meydana gelir.
weekButton.addEventListener("click", function(){
ctx.clearRect (0, 0, 300, 300);
ctx.canvas.width = 300;
ctx.canvas.height = 300;
myChart = new Chart(ctx).Line(graph1Generator("week"));
Bu kodu başarıyla yeni verilerle grafiği yeniden çizmek, ama ben üzerine geldiklerinde, onu temizlemek gerekiyordu o eski grafiğe bazı çok garip "flashback" yapar. Bu, eski olanı temizlemediğine inanmamı sağlıyor.
Olay işleyicisinde yeni bir tane oluşturmak yerine eski grafik nesnesini yeniden kullanırsanız, çalışacağını düşünüyorum. Alternatif olarak, yeni bir tane oluşturmadan hemen önce de 'myChart.destroy(); – Pointy
Eski grafik nesnesini yeni verilerle nasıl yeniden kullanırım? Grafikler aynı olsa da, farklı veri türleri var. Ayrıca, 'myChar.destroy();' her olaydan sonra grafik boyutumu çoğaltıyor gibi görünüyor. Bu neden oluyor? – ApathyBear
Sadece bence “myChart.Line (graph1generator (" week "));' (veya yeni veriler için ne yapmanız gerekiyorsa). Ve tuvali kodunuzla temizlemekten ziyade, Chart'ın yapmasına izin verin: 'myChart.clear();'. (Bu .destroy() 'dan daha iyi çalışabilir; emin değilim.) – Pointy