gpt4 book ai didi

java - java 小程序中的缓慢文件对话框

转载 作者:行者123 更新时间:2023-12-01 14:21:32 25 4
gpt4 key购买 nike

我有一个 java 小程序,用于从我的网站中的 Internet Explorer 上传。当按下我网站上的按钮时,JavaScript 函数会初始化小程序并调用小程序的 OpenPrivDialog() 函数。

  public void  OpenPrivDialog() {

AccessController.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
OpenDialog();
return true;
}

});
}

public void OpenDialog(){

JFileChooser fc = new JFileChooser();

fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fc.setMultiSelectionEnabled(true);
Logger.getLogger(UploadApplet.class.getName()).log(Level.INFO, "Opening dialog", "fe");
int retVal = fc.showOpenDialog(f);
if (retVal == JFileChooser.APPROVE_OPTION) {
Logger.getLogger(UploadApplet.class.getName()).log(Level.INFO, "approved", "");
File[] files = fc.getSelectedFiles();
Logger.getLogger(UploadApplet.class.getName()).log(Level.INFO, "got " + files.length+" files", "");
AddFiles(files);
}

}

这段代码可以工作,但是文件选择器 dilog 打开的速度非常慢,但有一分钟完全没有响应,然后非常慢 - 知道为什么吗?

最佳答案

当我读到这篇文章时,我可以想象我所经历的可怕经历。我需要使用比您的软件复杂得多的软件,但本质上它具有相同的原理:将 Java Applet 与在网络浏览器上运行的 Javascript 进行交互。

我们遇到了几个问题,我想强调一下:

  1. 响应缓慢:与您遇到的情况类似。
  2. 安全问题:安全检查要求用户同意潜在危险的代码和其他相关问题零日攻击。
  3. 无效的 Javascript 调用:我们的小程序很少无法访问javascript代码,我们从未找到这个问题的原因,它是很难重现。
  4. 浏览器兼容性:Firefox 和 Chrome 非常标准,但我们在使用 Internet Explore 和 Safari 时遇到了一些问题。

事实证明,我们的小程序代码在 5 天内就准备好了,但与 javascript 的集成花了大约一个月的时间(我们有 4 名高级开发人员正在处理它),只是因为我们的利益相关者希望它能够与一些奇特的 jQuery 组件一起工作。这只是一场噩梦!

底线是,我们做不到。或者,我们在小程序中编写所有内容,并提供一系列属性,UI 开发人员可以使用这些属性来更改小程序的外观,效果很好,每个人都对此感到满意。

因此,我建议不要使用 JavaScript + Java Applet。是的,您可以使用一些基本功能,但不要进一步使用它。

好吧,我们来谈谈你的问题。我们注意到,在某些情况下,JavaScript 在调用 Java 方法时非常慢,但在更改 Java 属性时却一点也不慢。因此,我们创建了一些 Java 变量并通过 Javascript 更改了它。接下来,我们观察这些变量(可能在线程中)。最后,我们可以根据这些变量调用正确的方法。

不,我不喜欢这种方法。但在完全放弃将 Javascript 与 Java Applet 结合使用的想法之前,这是唯一对我们有用的方法。

希望对您有所帮助。

干杯,

关于java - java 小程序中的缓慢文件对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17510586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com