代码之家  ›  专栏  ›  技术社区  ›  Jaap Stewie

使用Java Applet的许多浏览器选项卡导致OutOfMeMyExyExplyExchange

  •  0
  • Jaap Stewie  · 技术社区  · 15 年前

    我有一个小程序,它使我的记忆力大大增强。如果用户打开多个带有小程序的网页的选项卡,则会得到一个OutofMemoryException。 这可以通过浏览器只使用虚拟机的一个实例来解释。 我有什么办法可以阻止这个吗?

    OutofMemoryException不能真正被捕获,因为它可以(几乎)发生在任何地方…

    1 回复  |  直到 15 年前
        1
  •  1
  •   cjstehno    15 年前

    我建议您对小程序进行一些分析,看看您可以修剪什么,假设用小程序打开很多选项卡是一个标准的用例。您将需要非常精简地运行applet。

    您可能还希望更多地使用applet生命周期方法。当小程序页失去焦点时,我相信会调用小程序的stop()方法。一旦小程序页返回视图,就应该调用start()。您可以使用applet流持久性在不同的选项卡上共享您正在运行的数据,将其保存在stop()上,并在start()上重新加载。不确定这是一个很好的解决方案,但它可能会起作用。

    除了“因为他们可以”之外,用户是否有任何合法的理由让一堆标签中的小程序运行在每个标签中?如果这只是一个远远不够的测试用例,那么您可能只想做您能做的,然后记录这个问题。

    祝你好运。