当前位置: 首页 > 面试题库 >

Web上Java小程序的可用性

慕弘深
2023-03-14
问题内容

对于我们大学的在线学习项目,我们使用Java小程序在Ilias学习单元内显示一些交互式的内容(例如某些交互式功能图或一些简单的问题/答案系统或其他交互式元素以及这些元素的任意组合)。

我们之所以选择Java,是因为我们想要一个开放的解决方案(当时HTML5尚不可用,而Flash确实是也不是一种选择)。

几年后的现在,我真的感到Java并不是真正可用于网络。大多数情况下,由于很多问题,我并不能真正解决所有问题。

所以,我的问题是:Java只是不适合网络使用还是我做错了?您能指出我如何解决这些问题吗?

我当时遇到的问题:

  • Java小程序需要花费很多时间才能加载。即使它是一个非常简单的小applet,有时也需要花费一分钟的时间来加载。这是为什么?Java框架真的比Qt或其他框架大很多吗?还是VM这么大?还是VM这么慢?

  • 加载小程序时,浏览器(或至少是Chrome中的选项卡)的esp会变得非常慢,但此后也会如此。

  • Java小程序在每个系统上看起来都不同。UI控件完全不同,并且行为也略有不同。有时是本机外观(或某种外观),有时则完全是自己的东西。另外,字体也大不相同,并且通常支持Unicode字符的不同子集。这对我们来说是一个真正的问题,因为我们在数学符号上经常使用Unicode,并且有很多报告说某些符号对某些人不起作用。另外,由于每个系统上的字体大小不同,我得到的报告是文本只为少数几个人剪裁(或者在JLabel中用“ …”缩短)。现在,通过在JAR中包含一个TTF来解决这个问题。多数情况下有效。有时即使使用唯一的字体,我也会得到这些“ …”报告。

  • 有时,内存使用率非常高(但并非总是如此)。

  • 当加载具有多个小程序的页面时,浏览器崩溃和/或多个小程序无法正确加载的可能性非常高。整个操作系统也变得非常慢。

  • 有时,Java Applet不在浏览器X中加载,而是在浏览器Y中加载。单击几次重新加载或重新启动浏览器/系统后,该行为可能会切换。例如,似乎在Firefox中加载小程序的可能性更高(也并非总是如此,但多数情况下,至少在单击一次或两次后重新加载),而在Chrome上加载的可能性更低(但如果幸运的话,有时它也可以工作) 。视系统而定,可能是效果最佳的不同浏览器。尽管从来没有一款浏览器能完美运行。此行为在我们测试过的所有系统上(32位和64位的不同Linux发行版,Windows XP / Vista / 7,Mac OS X)上都有。

  • 有时,当我切换到另一个选项卡并返回时,小程序保持空白。有时至少需要很长时间才能再次显示。

  • 它吞噬了所有CPU。即使我已经关闭了所有与applet的选项卡。我必须退出浏览器才能解决此问题。

我们遇到这些问题的一些示例:

  • http://www.matha.rwth-aachen.de/~ilias/jars/Integration/Integration_Geogebra.html
  • http://www.matha.rwth-aachen.de/~ilias/jars/Abbildungen/Abbildungen.html
  • http://www.matha.rwth-aachen.de/~ilias/jars/Trigonometrie/Trigonometrie_Geonext.html
  • http://www.matha.rwth-aachen.de/~ilias/jars/AnalytischeGeometrieundLA/AnalytischeGeometrieundLA.html
  • http://www.matha.rwth-aachen.de/~ilias/jars/ganze%20und%20natuerliche%20Zahlen/ganze%20und%20natuerliche%20Zahlen.html

如果您查看这些示例,那么什么是Java的替代解决方案?我想到了最近的浏览器中的HTML +
JavaScript(如果我们告诉我们的用户他们应该使用基于WebKit的浏览器,这并不是一个真正的问题),尽管我认为其中一些示例可能很难实现(至少比Java更难)。


问题答案:

Java小程序在本世纪初是现代的。如今,只有少数站点使用Java applet,这可能是浏览器支持不理想的原因之一。

从浏览器卡住之前所见,您的小程序似乎只是在绘制各种图表。

我建议尝试使用一种专注于绘制图表的现代JavaScript库:http : //javascript.open-libraries.com/utilities/chart/20-best-
javascript-charting-and-plotting-libraries/

另外,如果您需要的功能比库提供的更多,并且您不太在意跨浏览器的兼容性,则可以使用
HTML5元素和 SVG
-Internet Explorer以外的所有浏览器都对它们提供了不错的支持。

如果不需要交互式图表,则可以使用PHP,Ruby,Python,Java或其他任何形式在服务器上呈现它们,并将它们作为纯图像发送到浏览器。

如果您需要表达数学表达式,请考虑使用服务器脚本动态渲染的MathML或纯图像。



 类似资料:
  • null 我已经对应用程序进行了编码,并创建了一个标准ear,其结构如下 app.ear _lib(具有所有必需的JAR,如公共日志) application.xml:- 现在,当我用JBoss7的管理控制台部署这个ear时,web模块似乎已经部署,甚至页面也被点击了。但是,我试图将EJB注入到servlet中的应用程序的另一部分(作为使用@EJB的实例变量)失败了。 我部署应用程序的方式似乎有些

  • 问题内容: 我喜欢旧的Java小程序。但是因为我真的很喜欢JFX的工作方式,所以我想使用JFX编写一些游戏(甚至是游戏制作系统,谁知道?),但是我希望能够将它们发布到我的网站上。人们将如何去做呢? 问题答案: 是的,您应该可以将JavaFX嵌入到您的网页中: http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deploymen

  • 问题内容: 我想使用html applet标记在我的Web应用程序中运行简单applet,但是它给出了类似的错误 java.lang.ClassNotFoundException:MyApplet 请给我示例应用程序,如果可能的话..... 问题答案: 问题是applet引擎在您定义的代码库中找不到MyApplet类。 这是因为您在/ WEB-INF / classes目录中进行了分类。该目录受s

  • 问题内容: 嘿,我一直在用Java在Windows控制台中开发一个应用程序,并希望将其在线发布在所有console-graphics-glory中。 我可以使用一个简单的Web applet API来移植我的应用程序吗? 我仅使用基本的System.out和System.in功能,但是很高兴重建我的I / O包装器。 我认为,对于希望将其工作放在网上的任何新手Java开发人员而言,遵循这些思路将是

  • 我有一个运行在tomcat服务器上的Java Web应用程序,没有任何框架。我的应用程序使用MongoDB,我需要将它部署到AWS。 我需要做什么步骤? <李>向弹性豆茎开战? < li >在EC2上安装Mongo? 过程是什么? 实际上,我不明白如何在AWS中使用Mongo。部署战争很简单,但如何将这个项目与我的数据库连接起来?

  • 我是Java卡的新手,我正在做一个项目,我需要PIN安全智能卡用于医疗保健项目。我想知道的是,如果我可以加载我的Java卡应用程序在非Java智能卡(我试图避免昂贵的成本,可以选择40美元或更多/1卡)?如果可能的话,我想知道一些关于如何区分卡片并获得它们的技术细节(类型、内存、联系/非接触等)的技巧。