作者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