Trong QT 4.8.4 Tôi có một số tùy ý Javascript được thực hiện thông qua một callback trong C++:QT: javascript thực hiện chậm (trừ khi tôi đăng nhập vào giao diện điều khiển)
myWebElement->evaluateJavaScript(myScript);
Bây giờ, các kịch bản thử nghiệm là:
$(this).css('border', 'solid 10px #000')
hoạt động, nhưng phải mất vài giây để chạy và chạy CPU 100%.
Sau đó trong khi thử nghiệm tôi đã thêm "; console.log ('X')" trong khi gỡ lỗi tập lệnh để xem xác định lỗi gác máy ... Và nó được thực thi ngay lập tức!
Tôi đã tìm thấy rằng miễn là tôi đang đăng nhập vào bảng điều khiển, các tập lệnh hoạt động hiệu quả như mong đợi. Ngay sau khi tôi xóa bảng điều khiển ghi nhật ký, hiệu suất sẽ chậm lại. Nó không quan trọng nếu tôi đăng nhập trực tiếp trong kịch bản, hoặc thêm nhật ký trong C++.
Bất kỳ ý tưởng nào? Tôi ghét phải có một hack như dưới đây nổi xung quanh trong chương trình của tôi.
myWebElement->evaluateJavaScript(myScript + "; console.log('X')");
UPDATE:
Hình như lỗi này bị ảnh hưởng bởi số lượng các yếu tố trên trang. Có một bảng, trong trường hợp chỉ có một hoặc hai hàng không có CPU chạy lên. Khi có 600 hàng, có một vài giây sử dụng CPU tối đa. Một lần nữa, ngay khi có lệnh console.log ở cuối, không có CPU nào chạy ngay cả với 600 hàng.
(còn thêm thông tin phiên bản cho câu hỏi)
UPDATE 2:
Sau khi thử nghiệm, tôi không cần phải vượt qua bất cứ điều gì vào giao diện điều khiển cho hack để làm việc, tôi không thậm chí cần phải gọi nhật ký. Tôi có thể nối thêm "; console;" với tập lệnh và nó vẫn hoạt động ngay lập tức. Tôi cũng đã thử nghiệm thêm một câu lệnh return vào cuối, mà không hoạt động.
Vui lòng cho biết phiên bản Qt – ksimons
Phát triển trên QT 4.8.4, Kubuntu Linux 13.10 – Kver