美好的一天!
我使用jxBrowser(6.0.2)来显示来自JavaSwing桌面应用程序的HTML。它有效,但我找到了以下"功能"。如果JavaScript包含类似"而(true){...}"页面变得没有响应但是所有标准浏览器都允许在很短的时间(10-30秒)后停止此脚本。 JxBrowser在8分钟后执行类似的过程。还会发生内存泄漏(~1.7 Gb)。
每个人都知道如何减少响应时间间隔(8分钟)吗? 当页面无响应时,JxBrowser如何记录类似的情况? 是否存在一些java-callback,它允许我的swing应用程序知道我的HTML页面没有响应?
我的HTML页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Loader</title>
</head>
<script type="text/javascript">
function myFunc() {
while (true) {
try {
console.log("xxxxx");
} catch (exception) {
alert(exception);
}
}
}
</script>
<body id="body1">
<button onclick="myFunc()">Load</button>
</body>
</html>
我的java代码:
package main;
import java.awt.BorderLayout;
import java.util.logging.Level;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.LoggerProvider;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
public class MainClass {
public static void main(String[] args) {
LoggerProvider.getBrowserLogger().setLevel(Level.ALL);
LoggerProvider.getIPCLogger().setLevel(Level.ALL);
LoggerProvider.getChromiumProcessLogger().setLevel(Level.ALL);
Browser browser = new Browser();
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Browser One", new JButton ("xxxx"));
tabbedPane.addTab("Browser Two", new BrowserView(browser));
JFrame frame = new JFrame();
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
browser.loadURL("#######/Main.html");
}
}