IPC = { /** * Обработчик IPC вызова */ startTask: function(cmd) { // Отключаем кнопки $("#run").attr("disabled", true); // Данные для SSE cmd = encodeURIComponent(cmd); var es = new EventSource("backend/ipc.php?cmd=" + cmd); // Добавление обработчика потока es.addEventListener("message", function(e) { var result = JSON.parse( e.data ); IPC.addLog(result.message); if(e.lastEventId == "CLOSE") { es.close(); $("#run").attr("disabled", false); } else { if( result.progress ) { $("#progress").css("width", result.progress+"%").html(result.progress+"%"); } } }); // Добавление обработчика ошибок es.addEventListener("error", function(e) { IPC.addLog("Error occurred"); console.log(es); es.close(); $("#run").attr("disabled", false); }); }, /** * Вывод данных в "консоль" в правой части экрана приложения */ addLog: function(message) { if(message) { var con = document.getElementById("console"); con.innerHTML += message + "<br>"; con.scrollTop = con.scrollHeight; } } }; |