Eğer aşağıdakileri yapın JavaScript çizme çözüm kullanarak bahsediyoruz gibi:
- sayfa yük size tam metin dosyası okuma ve boyutunu hatırlayarak geçerli bir grafik oluşturabilirsiniz.
- sayfa yüklendikten sonra bir JavaScript işlevi oluşturmak düzenli anketler AJAX-teknikleri (
XMLHttpRequest
) kullanılarak ve bir parametre olarak metin dosyasının bilinen son dosyaboyu geçen sunucu üzerinde belirli bir komut dosyası.
- sizin yoklama komut, dosya boyutu parametre alır metin dosyasını açar, bu son dosyayı (dosya boyutu-parametre) okumak hangi noktaya ulaşıncaya kadar dosya üzerinden atlar.
- yoklama komut dosyası sonuna ve yeni filesite için filesize tüm mevcut verileri döndürür
- senin Javascript AJAX yanıt okur ve grafiği için gerekli arsa puan ekler
- Eğer bir parametre olarak yeni dosya boyutu ile sunucu tarafı komut dosyası sorgulama üzerinde başlayabilirsiniz
Bu işlem sunucu tarafı yanı sıra istemci tarafı programlama gerektirir ama kolayca yapılabilir.
Aşağıdaki metin dosyasını okumak için hangi pozisyon komut söyler ve arsa puan json kodlanmış listesi ve yeni endeks işaretçi döndüren bir index
ve parametreleri gerektiren örnek bir yoklama betik.
// poll.php
$index = (isset($_GET['index'])) ? (int)$_GET['index'] : 0;
$file = fopen('path/to/your/file.txt', 'r');
$data = array(
'index' => null,
'data' => array()
);
// move forward to the designated position
fseek($file, $index, SEEK_SET);
while (!feof($file)) {
/*
* assuming we have a file that looks like
* 0,10
* 1,15
* 2,12
* ...
*/
list($x, $y) = explode(',', trim(fgets($handle)), 2);
$data['data'][] = array('x' => $x, 'y' => $y);
}
// set the new index
$data['index'] = ftell($file);
fclose($file);
header('Content-Type: application/json');
echo json_encode($data);
exit();
Gelen JavaScript / jQuery parçacığını olabilir:
// the jQuery code to poll the script
var current = 0;
function pollData() {
$.getJSON('poll.php', { 'index': current }, function(data) {
current = data.index;
for (var i= 0; i < data.data.length; i++) {
var x = data.data[i].x;
var y = data.data[i].y;
// do your plotting here
}
});
}
// call pollData() every 5 seconds
var timer = window.setInterval(pollData, 5000);
Bu sadece bir örnektir ve tüm hata denetimi (pollData()
aynı sayfada sorunlu olacaktır örneğin eşzamanlı aramalar) yoksun o dikkatli olun.