1

这里有一个初学者伏特问题:-)。

我创建了一个简单的 volt 应用程序,它从文件系统中提取随机图像 - 幻灯片放映。图像数据在服务器任务中检索(除了文件路径,我想要尺寸方向等,所以我使用 ruby​​ 库),然后将其传递回主控制器。所以我在控制器中有一个方法(get_random_pic),它在页面上设置img路径等,以便在视图中使用img标签:

<img width="{{page._image_data[3]}}}}" src="{{page._image_data[0]}}">image</img>

(顺便说一句:我正在使用一个数组来使值绑定“信号”同时到达 - 否则图像宽度会在不同的时间更新到图像路径 - 但是它仍然不与数组同步)

然后我在控制器中使用 setTimeout 再次调用 get_random_pic 方法(通过按钮)。

setTimeout(function(){ document.getElementById("myButton").click(); }, 5000);

这非常有效,但是内存使用量永远不会停止增长(例如,20 分钟后它将达到 2GB)。我认为这是因为每次在视图中加载图像时,前一个图像都是孤立的,GC 无法运行。实际上,我对 JS 的了解还不够,无法得出任何明智的理由来解释为什么,也没有优雅的解决方法。也许我可以在控制器实例方法中加载图像,并且 img 标记直接引用二进制文件(而不是通过文件系统中的文件路径提取),并且在每次迭代中我可以将其设置为 nil,但我希望有更好的解决方案,在我尝试之前。

4

0 回答 0