我正在研究HTML 5遊戲,它已經在線,但它目前很小,一切都還好。使用JavaScript卸載HTML中的資源
事情是,隨着它的增長,它將會加載許多許多圖像,音樂,音效等等。在玩遊戲15分鐘後,至少有100種不同的資源可能已經加載。由於它是一個HTML5應用程序,它在遊戲過程中從不刷新頁面,因此它們都在後臺堆疊。
我注意到我加載的每個資源 - 至少在WebKit上,使用Web Inspector - 一旦我將<img>
,<link>
移除到CSS和其他位置,我仍然保留在那裏。我猜它仍然在記憶中,只是沒有被使用,對吧?
這最終會消耗大量內存,導致性能下降,尤其是iOS和Android手機(我稍微注意到當前版本)的性能下降,其資源比桌面計算機更爲有限。
我的問題是:是否可以通過JavaScript完全卸載資源,釋放RAM中的空間?而不必刷新整個頁面來「清除」。
最糟糕的情景:使用框架幫助,通過刪除一個框架,釋放這些框架的資源?
謝謝!
你可以嘗試做的一件事是設置相應的資源句柄爲'null'。只要資源沒有從任何地方引用,它使用的內存就應該被javascript引擎垃圾收集。 –
我會試試!謝謝!你介意與我分享一個關於如何訪問瀏覽器加載的資源的例子的鏈接嗎?我很難在Google上找到它=/ – ArtPulse
在Firefox和Chrome中,垃圾收集器似乎在切換到另一個選項卡時運行。我不確定這對你有多大用處,但如果用戶不是連續玩遊戲,那麼應該很好地相信垃圾收集器。 – pimvdb