พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

การวาดกราฟโดยเรียกข้อมูลจาก mysql

+1 vote

โดยการเรียกข้อมูลจาก Mysql มาอัพเดทให้เป็นเรียลไทม์ที่สุด โดยใช้ phpติดต่อกับ Mysql  แล้วใช้ Highchart มาวาดครับ

เมื่อเรียก ข้อมูล ถี่ๆเข้า ทำให้เครื่องที่รันอยู่ ทำงานหนักขึ้นครับ  ทำอย่างไร จึงจะผ่อนหรือแก้ไขได้ครับ

$(document).ready(function() {

    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            defaultSeriesType: 'spline',
            events: {
                load: requestData
            }
        },
        title: {
            text: 'รายงานการแจ้งเตือนทั้งหมด'
        },
credits:{
enabled:false
},
        xAxis: {
            type: 'datetime',
            tickPixelInterval: 100,
            maxZoom: 10 * 1000
        },
        yAxis: {
            minPadding: 0.2,
            maxPadding: 0.2,
            title: {
                text: 'จำนวนครั้ง',
                margin: 5
            }
        },
        series: [{
            name: 'จำนวนการแจ้งทั้งหมด',
            data: []
        }]
    });        
 
//END of Graph 1
function requestData_TCP() {
   $.ajax({
type:"GET",
        url: 'rmuti_tcp_udp_icmp_alert_graph.php',
        success: function(point) {
            var series = chart.series[0],
                shift = series.data.length > 7; // shift if the series is longer than 20
 
            // add the point
            chart1.series[0].addPoint(point, true, shift);
            
            // call it again after one second
           // setTimeout(requestData_TCP, 1000);    
        },
        cache: true
    });//END DATA TCP
 
//BEGIN DATA of UDP2
$.ajax({
type:"GET",
        url: 'rmuti_udp_alert_graph.php',
        success: function(point) {
            var series = chart.series[0],
                shift = series.data.length > 7; // shift if the series is longer than 20
 
            // add the point
            chart1.series[1].addPoint(point, true, shift);
            
            // call it again after one second
           // setTimeout(requestData_TCP, 1000);    
        },
        cache: true
    });
setTimeout(requestData_TCP, 2500); 
}/**/
 
    chart1 = new Highcharts.Chart({
        chart: {
            renderTo: 'apDiv1',
            defaultSeriesType: 'spline',
            events: {
                load: requestData_TCP
            }
        },
        title: {
            text: 'รายงาน1'
        },
credits:{
enabled:false
},
        xAxis: {
            type: 'datetime',
            tickPixelInterval: 100,
            maxZoom: 10 * 1000
        },
        yAxis: {
            minPadding: 0.2,
            maxPadding: 0.2,
            title: {
                text: 'จำนวนครั้ง',
                margin: 5
            }
        },
        series: [{
            name: 'จำนวนการแจ้ง1',
            data: []
        }, {
name:'จำนวนการแจ้ง2',
data:[]
}]
    });        
});
 
 
ส่วนของ php ครับ
 
 
$x = (time()+$zone_time) * 1000;
// The y value is a random number
 
$y =mysql_num_rows($objSeclect);
 
// Create a PHP array and echo it as JSON
$ret = array($x, $y);
echo json_encode($ret);

 

ถามเมื่อ Apr 22, 2012 in PHP & MySQL & Ajax โดย chockchaisu (103 คะแนน)
   

1 Answer

+1 vote

ใช้ reverse ajax push ออกมาจาก server ครับ ของ javascript ชื่อ ape http://www.ape-project.org/ โดยมันจะทำงานที่ฝั่ง server ครับ แต่ต้องดูเรื่อง query optimization ด้วยนะครับ เพราะถ้า query เละจะทำให้  server แย่ได้เหมือนกัน

ตอบเมื่อ Apr 23, 2012 โดย Thanabodee Charoenpi (666 คะแนน)

Related questions

+2 votes
3 คำตอบ
+4 votes
2 คำตอบ
530 views ถามเมื่อ Apr 30, 2012 in PHP & MySQL & Ajax โดย NeTWol2Kz (135 คะแนน)
+1 vote
1 คำตอบ
...