如何减少JxBrowser和JavaScript的时间间隔?

时间:2016-06-27 16:01:10

标签: javascript java while-loop jxbrowser

美好的一天!

我使用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");
    }
}

0 个答案:

没有答案