[問題] delete function object

看板Ajax作者 (ㄏㄨㄢ。ㄕㄨˇ)時間16年前 (2009/02/12 23:09), 編輯推噓1(109)
留言10則, 3人參與, 最新討論串1/3 (看更多)
假設我利用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)

02/13 01:32, , 1F
理論上會有回收機制
02/13 01:32, 1F

02/13 10:43, , 2F
類似JVM,沒有被refer的物件就有機會被free
02/13 10:43, 2F

02/13 22:14, , 3F
but具名函式好像永遠都不會消失耶...
02/13 22:14, 3F

02/13 23:00, , 4F
varname=null;
02/13 23:00, 4F

02/13 23:02, , 5F
javascript使用一個reference機制做所有assign value動作
02/13 23:02, 5F

02/13 23:03, , 6F
包括呼叫函數時。function x(){}其實是assign一個函數物件
02/13 23:03, 6F

02/13 23:04, , 7F
的reference給x變數。所以只要x=null,這個函數物件就可以
02/13 23:04, 7F

02/13 23:04, , 8F
被回收了。
02/13 23:04, 8F

02/13 23:29, , 9F
那如果是匿名函式,它要如何偵測回收的timing?是判斷b
02/13 23:29, 9F

02/13 23:29, , 10F
ind的物件消失嗎?
02/13 23:29, 10F
文章代碼(AID): #19b3kk6b (Ajax)
討論串 (同標題文章)
文章代碼(AID): #19b3kk6b (Ajax)