gpt4 book ai didi

javascript - 正确销毁 dojo DataStore

转载 作者:行者123 更新时间:2023-11-30 06:49:30 24 4
gpt4 key购买 nike

我在我的应用程序中广泛使用声明式 dojo 数据存储,并将它们连接到各种声明式数据驱动的小部件。当我试图“破坏”包含 DataStores 的 ContentPane 时,问题就出现了。所有使用数据存储的声明性示例都使用属性 jsId 让 dojo 解析器将数据存储设置为变量,然后控件指向该变量。例如,我使用以下内容:

<div dojoType="dojo.data.ItemFileReadStore" id="processList" jsId="processList" 
url="json/processlist.json.php"></div>
<input dojoType="dijit.form.FilteringSelect" name="processSelect" id="processSelect"
value="null" store="processList" searchAttr="label" />

它就像一个魅力,但问题是当我销毁父 ContentPane 时,我注意到变量 processList 在浏览器中仍然可用。使用应用程序的各个部分后,我最终到处都是大量的小数据存储,这显然是一个相当大的“内存泄漏”。

我如何避免将数据存储注册为变量(我在 store 属性中尝试了 dijit.byId() 但没有成功)或者我如何自动拥有这些数据存储会自行清理?

最佳答案

根据 discussion with the open ticket , dojo 1.4.x 版本不会自动删除 解析器通过设置jsId 属性创建的全局变量。目前删除它们的唯一方法是手动跟踪它们并发出 delete variable_name。正在考虑为 dojo 的 future 版本提供某种长期解决方案。

关于javascript - 正确销毁 dojo DataStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317110/

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