標準の月ビューを表示する PHP で生成しているカレンダーがあります。各日のセル内には、一連のポイントをロードするjqPlotのインスタンスがあります。
毎日独自のチャートがあるため、31 日で 31 のチャートが必要です。Firefox では、顕著な 1 ~ 2 秒のラグがあります。IE では、6 秒または 7 秒の長さです。これはすべてクライアント側のレンダリング時間です。
これらのグラフをもう少し速くロードするためのより効率的な方法があることは 100% 確信しています。
以下は、私がやっていることの大まかなPHPスクリプトです。
echo "<script type=\"text/javascript\">
$(document).ready(function(){
try {
$.jqplot ('calendarchart$this_day', [[";
foreach($todays_kwhs as $row){
echo '["'.date('H:i', $row['time_read']).'",'.$row['kwh']. '],';
}
echo "]],
{
axes: {
xaxis: {
showTicks: false,
renderer: $.jqplot.DateAxisRenderer,
ticks: [['00:00', '12AM'], ['06:00', '6AM'], ['12:00', '12PM'], ['18:00', '6PM'], ['24:00','12AM']] ,
pad: 0.0,
tickOptions: {
formatString: '%H:%I%p'
}
},
yaxis: {
showTicks: false,
min: 0,
max: 600,
pad:0.0
}
},
seriesDefaults: {
show: true,
lineWidth: 1.0,
markerOptions: {
show: false
}
},
gridPadding: {top:1, right:1, bottom:1, left:1},
grid: {
background: '#ffffff',
borderWidth: 0,
borderColor: '#cccccc',
shadow: false,
drawGridlines: true,
gridLineColor: '#f0f0f0'
}
}
);
} catch(err) { console.log(err); }
});
</script>";
}
当然、これはすべて約 30 回繰り返され、クライアントは数秒間ハングアップします。