gpt4 book ai didi

javascript - Samsung Smart TV App 退出再启动后速度很慢

转载 作者:行者123 更新时间:2023-11-29 15:43:34 25 4
gpt4 key购买 nike

我们为 2011 和 2012 平台开发了三星智能电视应用。该应用程序基于 HTML/JavaScript。通常应用程序运行良好,但退出应用程序后变得非常慢,速度是原来的六倍。测得的 JS 执行时间只是稍微慢一点,但 HTML 元素在屏幕上的渲染速度要慢得多。这种行为发生在所有设备上(电视和带有智能电视平台的蓝光播放器设备)。

通过执行JS命令实现退出

var widgetAPI = new Common.API.Widget();
widgetAPI.sendExitEvent();

当使用命令时,应用程序的行为相同(即再次启动后变慢)

widgetAPI.sendReturnEvent();

(将用户返回到 Smart Hub 而不是完全退出)。通过反复试验,我发现故意让应用程序崩溃可以解决问题 - 这会导致与调用 sendExitEvent 方法的用户行为相同。然而,这不是一个非常干净的方法,而且我更愿意使用 sendReturnEvent 命令。

如何以编程方式将用户返回到 Smart Hub,以便应用程序在再次启动时不会变慢?

我希望有人对此有一些第一人称的经验和建议。我试图消除可能的 JS 内存泄漏源(使用 JS 编程最佳实践和三星的建议),但这并没有解决问题。

最佳答案

我用两个 Action 解决了这个问题:

  • 我没有简单地调用 widgetAPI.sendReturnEvent(),而是将用户重定向到一个新页面 exit.html(使用 window.location.href),该页面几乎是空的,除了 onload 处理程序,它调用以下命令(相当于 widgetApi.sendReadyEvent()widgetApi.sendReturnEvent() 但不需要包含 Widget。 js文件)
   curWidget.setPreference("ready","true");
curWidget.setPreference("return","true");
  • 注释掉所有 alert 命令。显然多次调用 alert 会泄漏内存,因此在退出应用程序时不会从内存中收集累积的垃圾,导致重启后速度变慢

仅应用这两种方法似乎可以解决问题。推测是应用程序累积内存泄漏导致应用程序重启后变慢

1) 在文档级别(尽管我们努力遵循所有指南来防止它们),然后在加载另一个 HTML 文件后清除。

2) 在全局级别,由调用 alert

引起

关于javascript - Samsung Smart TV App 退出再启动后速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367400/

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