Мы используем jxbrowser версии 6.21 (последняя на момент написания).
Если скрипт застревает в бесконечном цикле, jxbrowser просто зависает и не отвечает. Я ждал более 2 минут.
Есть ли способ справиться с этим гладко?
Современные браузеры обнаруживают это и показывают пользователю оверлей, чтобы остановить скрипт.
SSCCE: html-файл со следующим содержимым:
<html>
<body>
<script>
function badLoop() {
var nextTime = new Date().getTime();
while (true) {
var now = new Date().getTime();
if (now > nextTime) {
console.log('badLoop() running: ' + now);
nextTime = now + 500;
}
}
}
</script>
<input type="button" value="startLoop" onClick="badLoop()" />
</body>
</html>
Тестовые запуски в других браузерах:
- Firefox примерно через 15 секунд:
При нажатии «остановить веб-сайт» Firefox просто останавливает скрипт, но оставляет веб-сайт открытым и регистрирует это в консоли:
Google Chrome (кроме firefox) фактически покидает веб-сайт после нажатия кнопки "Выйти" (и показывает эту ошибку):
Возможно ли это с помощью jxbrowser? Либо полностью автоматически, либо с подтверждением пользователя?
Browser.executeJavaScriptAndReturnValue()
для запуска такого скрипта? - person Anna Dolbina   schedule 13.08.2018