В QT 4.8.4 У меня есть произвольный Javascript, выполняемый через обратный вызов в С++:
myWebElement->evaluateJavaScript( myScript );
Теперь тест script был:
$(this).css('border', 'solid 10px #000')
который работал, но потребовалось несколько секунд, чтобы запустить, и подбежал к процессору 100%.
Затем во время тестирования я добавил "; console.log(" X ")" при отладке script, чтобы увидеть, как отключить зависание... И он выполняется мгновенно!
Я обнаружил, что до тех пор, пока я вхожу на консоль, скрипты работают эффективно, как ожидалось. Как только я удаляю ведение журнала консоли, производительность замедляется до обхода. Неважно, если я вхожу непосредственно в script или добавляю журнал на С++.
Любые идеи? Мне бы не хотелось, чтобы в моей программе был взломан как ниже.
myWebElement->evaluateJavaScript( myScript + "; console.log('X')" );
UPDATE:
Похоже, на эту ошибку влияет количество элементов на странице. Там таблица, в тех случаях, когда есть только одна или две строки, нет разгона процессора. Когда там 600 строк, есть несколько секунд максимального использования процессора. Опять же, хотя, как только команда console.log в конце концов, нет разгона процессора даже с 600 строками.
(также добавлена информация о версии на вопрос)
ОБНОВЛЕНИЕ 2:
После тестирования мне не нужно ничего пропускать в консоль для взлома для работы, мне даже не нужно вызывать журнал. Я могу добавить "; console;" к script, и он будет работать мгновенно. Я также тестировал добавление оператора return до конца, что не сработало.