$(function() { // trigger fail, end if ( !(triggerCode == 200 || handleCode != 0) ) { $('#logConsoleRunning').hide(); $('#logConsole').append('<span style="color: red;">'+ I18n.joblog_rolling_log_triggerfail +'</span>'); return; } // pull log var fromLineNum = 1; // [from, to], start as 1 var pullFailCount = 0; function pullLog() { // pullFailCount, max=20 if (pullFailCount++ > 20) { logRunStop('<span style="color: red;">'+ I18n.joblog_rolling_log_failoften +'</span>'); return; } // load console.log("pullLog, fromLineNum:" + fromLineNum); $.ajax({ type : 'POST', async: false, // sync, make log ordered url : base_url + '/joblog/logDetailCat', data : { "executorAddress":executorAddress, "triggerTime":triggerTime, "logId":logId, "fromLineNum":fromLineNum }, dataType : "json", success : function(data){ if (data.code == 200) { if (!data.content) { console.log('pullLog fail'); return; } if (fromLineNum != data.content.fromLineNum) { console.log('pullLog fromLineNum not match'); return; } if (fromLineNum > data.content.toLineNum ) { console.log('pullLog already line-end'); // valid end if (data.content.end) { logRunStop('<br><span style="color: green;">[Rolling Log Finish]</span>'); return; } return; } // append content fromLineNum = data.content.toLineNum + 1; $('#logConsole').append(data.content.logContent); pullFailCount = 0; // scroll to bottom scrollTo(0, document.body.scrollHeight); // $('#logConsolePre').scrollTop( document.body.scrollHeight + 300 ); } else { console.log('pullLog fail:'+data.msg); } } }); } // pull first page pullLog(); // handler already callback, end if (handleCode > 0) { logRunStop('<br><span style="color: green;">[Load Log Finish]</span>'); return; } // round until end var logRun = setInterval(function () { pullLog() }, 3000); function logRunStop(content){ $('#logConsoleRunning').hide(); logRun = window.clearInterval(logRun); $('#logConsole').append(content); } });