JSON-логика вывода данных

С определенного момента, для вывода накопленной информации стала использоваться не непосредственная генерация страницы с данными, а получение данных в JSON-формате. Это позволило унифицировать страницу stat1 в общую концепцию сайта, сделать ее тело полностью реализованным на основе HTML+JavaScript и отказаться от плагинов.

Для работы JSON написан скрипт get.php. Он возвращает массив данных. Причем скрипт работает в 2х режимах: обычный HTML и JSON. При этом есть еще и дополнительные параметры, такие как прореживание данных (вывод только каждой N-ой строки файла) и объем чтения в байтах, это количество последних байт файла, которые будут прочитаны. Второй параметр актуален для работы с CSV-файлами, для SQL-таблиц было бы логичнее использовать фильтр по конкретным меткам времени.

В режиме HTML можно протестировать и посмотреть данные, к примеру запрос: igorkov.org/get.php?file=temp1&last=256&thinning=1, выведет такие данные:

Если добавить параметр "callback", можно получить следующий вывод:

?([["1447769967","22.8","99760","0.0","99.9"],["1447770035","22.8","99758","0.0","99.9"],
["1447770103","22.8","99756","0.0","99.9"],["1447770170","22.8","99760","0.0","99.9"],
["1447770238","22.8","99766","0.0","99.9"],["1447770306","22.8","99772","0.0","99.9"],
["1447770373","22.7","99774","0.0","99.9"]])

Весь код общения с данным скриптом на стороне клиента можно увидеть в исходниках страницы вывода. Чтение данных производится непосредственно данным кодом:

$(document).ready(function() {
	var url =  "http://igorkov.org/get.php?callback=?";
	var data = {
		file: "temp1", // имя файла с данными
		last: 100000,  // учитываем последние 10000 байт файла, получается около 2-3 суток
		thinning: 10,  // берем каждое 10 показание из лога 
	};
	$.getJSON(url, data, function(data) {
		// Данная функция вызывается для каждой строки возвращенных данных.
		// Сами данные в массиве data.
	});
});

Ссылки

Original: http://igorkov.org/http-json,
Author: igorkov