作者sweetpotatoa (ㄏㄨㄢ。ㄕㄨˇ)
看板Ajax
标题[问题] delete function object
时间Thu Feb 12 23:09:31 2009
假设我利用ajax去动态change我的页面
but每个页面都有可能会需要一个function去处理某些事情
所以在load该页面时也会load一个script片段进来
但是一旦load进来该script後
browser就会建立该script内的所有物件
但是一旦我change到别的页面是(用ajax)
又会load新的页面&script
不过上一个页面的object却都还在(我用firebug看的)
请问有没有办法把上一个页面所create的function object全部free掉阿???
如果不free掉的话
那由ajax写成的网页(ex:gmail)
不就会随着时间增长,耗费越来越多的记忆体?
有人想过这问题吗?
另外由用bind的匿名函式会不会随着其所bind的对象被replace掉而自动free掉???
对了,我是用jquery去做的,他有相关的回收机制吗???
谢谢:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.117.164
※ 编辑: sweetpotatoa 来自: 140.116.117.164 (02/12 23:14)
1F:推 ybite:理论上会有回收机制 02/13 01:32
2F:→ fillano:类似JVM,没有被refer的物件就有机会被free 02/13 10:43
3F:→ sweetpotatoa:but具名函式好像永远都不会消失耶... 02/13 22:14
4F:→ fillano:varname=null; 02/13 23:00
5F:→ fillano:javascript使用一个reference机制做所有assign value动作 02/13 23:02
6F:→ fillano:包括呼叫函数时。function x(){}其实是assign一个函数物件 02/13 23:03
7F:→ fillano:的reference给x变数。所以只要x=null,这个函数物件就可以 02/13 23:04
8F:→ fillano:被回收了。 02/13 23:04
9F:→ sweetpotatoa:那如果是匿名函式,它要如何侦测回收的timing?是判断b 02/13 23:29
10F:→ sweetpotatoa:ind的物件消失吗? 02/13 23:29