2013-03-12 41 views
3

我們已經爲2011年的201212平臺開發了一款三星智能電視應用程序。該應用程序是基於HTML/JavaScript的。通常,應用程序運行良好,但退出應用程序後,速度會變慢6倍。測量的JS執行時間只是稍微慢一些,但HTML元素渲染速度要慢得多。這種行爲發生在所有設備上(具有智能電視平臺的電視和藍光播放器設備)。三星智能電視應用程序在退出並重新開始後非常緩慢

出口是通過執行JS命令

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

該應用程序的行爲相同(即再次開始之後變得更慢)使用命令

widgetAPI.sendReturnEvent(); 

(用戶返回時實現Smart Hub而不是完全退出)。通過試驗和錯誤,我發現使應用程序崩潰故意解決了這個問題 - 這導致與調用sendExitEvent方法的用戶具有相同的行爲。但是,這不是一個很乾淨的方法,而且我更喜歡使用sendReturnEvent命令。

如何以編程方式將用戶返回至Smart Hub,以便在再次啓動時應用程序不會變慢?

我希望有人對此有一些第一人稱經驗和建議。我試圖消除可能的JS內存泄漏源(使用JS編程最佳實踐和來自三星的建議),但這並沒有解決問題。

回答

1

我解決了使用兩個動作的問題:

  • 而是簡單地調用widgetAPI.sendReturnEvent()我將用戶重定向到(使用window.location.href)一個新的頁面exit.html,這幾乎是空的,除了一個onload處理程序,它調用以下命令(這等價於widgetApi.sendReadyEvent()widgetApi.sendReturnEvent()但無需包括Widget.js文件)
curWidget.setPreference("ready","true"); 
    curWidget.setPreference("return","true"); 
  • 註釋掉所有alert命令。使得離開應用程序時,從而導致無法重新啓動後慢

只有運用這兩種方法似乎解決這一問題的積累垃圾不會從記憶收集多次使用的時候顯然調用alert泄漏內存。想必應用積累內存泄漏會導致應用正在緩慢的文件級別(儘管我們努力遵守所有準則,以防止它們),然後將其加載另一個HTML文件後,清除重啓

1)後。

2)在全球範圍內,造成致電alert

+0

嘿u能請給我這個退出頁面的代碼示例,我的意思是其實你對退出應用程序的代碼,我的應用程序已經stucked由於這個問題 – abhi 2015-04-01 13:07:22

相關問題