@s-zhura

Как запланировать ежедневные изменения файле js (график)?

Есть div, в котором каждый день обновляется цифра. Допустим сегодня это 185:
<div id="summresult">185</div>

Есть файл js (график), в который каждый день нужно добавлять данные, в зависимости от значения  <div id="summresult">...</div>

window. onload = function () {
    var chart= new CanvasJS.Chart("chartContainer", {

      animationEnabled: true, 
      zoomEnabled:true,
      legend:{
        verticalAlign: "bottom",
        horizontalAlign: "center"
      },
      axisY:{
        includeZero: false,
        prefix: "$",
		  gridColor: "#DDD",
		  gridThickness: 1,
		  gridDashType: "dot",
		  tickThickness: 1,
		  interval: 250,
        maximum: 1900
      },
		 axisX:{      
            valueFormatString: "DD-MM-YY",
			   gridColor: "#DDD",
			   gridDashType: "dot",
			   tickThickness: 1,
			   gridThickness: 1
      },
		toolTip: {
        borderColor: "#337ba7",
		  backgroundColor: "#fbfbfb",
		  borderThickness: 2,
		  cornerRadius: 3,
		  fontStyle: "normal",
		  fontFamily: "tahoma"
      },
		data: [
      {
        type: "spline",
        markerSize: 8,
		  markerColor: "#337ba7",
		  markerBorderColor: "#FFF",
        markerBorderThickness: 1,
		  lineColor: "#337ba7",
        toolTipContent: "{x} <strong>${y} <strong>",
        dataPoints: [
        { x: new Date(2017,07,15), y: 215.00 }
        ,{ x: new Date(2017,07,16), y: 409.00 }
	,{ x: new Date(2017,07,17), y: 185.00 }
        ]
      }
      ]
    });
chart.render();
}

Строчка, которая должна была добавиться:  ,{ x: new Date(2017,07,17), y: 185.00 }
Соответственно, на следующий день должна добавиться строчка с цифрой из <div id="summresult">...</div>


Какую функцию написать и как сделать cron, чтобы он вносил изменения в файл js и добавлял данные в график в определённое время?
  • Вопрос задан
  • 248 просмотров
Пригласить эксперта
Ответы на вопрос 2
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
как сделать cron, чтобы он вносил изменения в файл js

Это очень плохая идея, которая создает неявную логику работы фронтенда, ломает его сборку, и из-за которой можно очень крупно влипнуть в перспективе. Если на JS совсем никак нельзя эти точки генерировать - то лучше не в скриптах что-то менять, а сделать отдельный json файл, в котором будут храниться точки и потом его аяксом загружать на клиента. В таком случае вам нужно просто вставлять нужную строку перед последней строкой этого json файла (google->php insert string before last line), это будет очень простой скрипт, а для того, чтобы добавить его в cron вам понадобится (google->cron php script). Ответы на оба вопроса есть по первой ссылке на stackoverflow. Про то, как можно загрузить на клиента можно почитать здесь, там и пример есть и пояснения.
Ответ написан
Комментировать
AlexXYZ
@AlexXYZ
O Keep Clear O
Если нужно именно кроном именно в файл (всякие обстоятельства бывают), то я бы посоветовал иметь для этого иметь отдельный файл в простом текстовом виде, в котором хранятся только данные, которые добавляет крон по одной строке за раз. Потом клиент читает страницу и читает отдельно этот файл, парсит его и строит график. А в том виде, как делаете вы, как сказал Ivan Bogachev - плохая идея. Например, вы можете поломать синтаксис исходного файла и тогда пользователь вообще ничего не увидит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы