首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三星智能电视应用在退出和重新启动后非常缓慢

三星智能电视应用在退出和重新启动后非常缓慢
EN

Stack Overflow用户
提问于 2013-03-12 16:56:51
回答 1查看 1.7K关注 0票数 3

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

出口是通过执行JS命令实现的。

代码语言:javascript
复制
var widgetAPI = new Common.API.Widget();
widgetAPI.sendExitEvent();

当使用命令时,应用程序的行为相同(即重新启动后会变慢)。

代码语言:javascript
复制
widgetAPI.sendReturnEvent();

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

如何以编程方式将用户返回智能集线器,使应用程序在再次启动时不会变慢?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 09:33:26

我用两个动作解决了这个问题:

  • 我不是简单地调用widgetAPI.sendReturnEvent(),而是将用户重定向到一个新的页面exit.html (使用window.location.href),这个页面几乎是空的,除了一个onload处理程序,它调用以下命令(这些命令相当于widgetApi.sendReadyEvent()widgetApi.sendReturnEvent(),但不需要包含Widget.js文件)

代码语言:javascript
复制
   curWidget.setPreference("ready","true");
   curWidget.setPreference("return","true");
  • 注释掉所有alert命令。显然,调用alert几次时会泄漏内存,这样在退出应用程序时就不会从内存中收集累积的垃圾,从而导致重新启动后速度变慢。

只有采用这两种方法才能解决这一问题。据推测,应用程序会累积内存泄漏,从而导致应用程序在重新启动后变得缓慢。

1)文档级别上的(尽管我们努力遵循所有防止它们的准则),然后在加载另一个HTML之后清除它们。

2)全局级别的,由调用alert引起

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15367400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档