Окно обновления: быстрый перезапуск bj (без обрыва между опросами) распознаётся по смене версии/сбросу отчёта; сторож 90 с
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -607,8 +607,8 @@ label { font-size:13px; font-weight:500; }
|
|||||||
}
|
}
|
||||||
function run(form){
|
function run(form){
|
||||||
var lastChange=Date.now(), lastKey='';
|
var lastChange=Date.now(), lastKey='';
|
||||||
// сторож: если отчёт не меняется 2 минуты, перезагружаем страницу — не оставляем «зависшее» окно
|
// сторож: если отчёт не меняется полторы минуты, перезагружаем страницу — не оставляем «зависшее» окно
|
||||||
(function watch(){ if(finished) return; if(Date.now()-lastChange>120000){ location.reload(); return; } setTimeout(watch,5000); })();
|
(function watch(){ if(finished) return; if(Date.now()-lastChange>90000){ location.reload(); return; } setTimeout(watch,5000); })();
|
||||||
var note='', startVer=null, target='', seenActive=false, postDone=false, lost=false, t0=Date.now(), seq0=null;
|
var note='', startVer=null, target='', seenActive=false, postDone=false, lost=false, t0=Date.now(), seq0=null;
|
||||||
show(); stageEl.textContent='Отправка запроса…'; bar.style.width='3%'; detail.textContent='';
|
show(); stageEl.textContent='Отправка запроса…'; bar.style.width='3%'; detail.textContent='';
|
||||||
// номер последнего отчёта до отправки: отчёт прошлой попытки (например, с ошибкой) не показываем
|
// номер последнего отчёта до отправки: отчёт прошлой попытки (например, с ошибкой) не показываем
|
||||||
@@ -633,6 +633,9 @@ label { font-size:13px; font-weight:500; }
|
|||||||
var key=[p.seq,p.step,p.done,p.finished,p.version].join('/'); if(key!==lastKey){ lastKey=key; lastChange=Date.now(); }
|
var key=[p.seq,p.step,p.done,p.finished,p.version].join('/'); if(key!==lastKey){ lastKey=key; lastChange=Date.now(); }
|
||||||
if(p.target) target=p.target;
|
if(p.target) target=p.target;
|
||||||
if(p.note) note=p.note;
|
if(p.note) note=p.note;
|
||||||
|
// bj перезапустился так быстро, что обрыв связи между опросами не попался: версия ядра
|
||||||
|
// сменилась или отчёт начался заново (новый процесс) — обновление завершено
|
||||||
|
if(!lost && startVer!==null && (p.version!==startVer || (seq0>0 && p.seq===0 && !p.active))){ lost=true; }
|
||||||
if(lost){ // bj вернулся после перезапуска
|
if(lost){ // bj вернулся после перезапуска
|
||||||
if(!target || p.version===target || p.version!==startVer){ finish('Готово: bj перезапущен, работает версия '+p.version+'.', true); detail.textContent=note ? note.charAt(0).toUpperCase()+note.slice(1)+'.' : ''; return; }
|
if(!target || p.version===target || p.version!==startVer){ finish('Готово: bj перезапущен, работает версия '+p.version+'.', true); detail.textContent=note ? note.charAt(0).toUpperCase()+note.slice(1)+'.' : ''; return; }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user