看板 Ajax 關於我們 聯絡資訊
假設我利用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)
ybite:理論上會有回收機制 02/13 01:32
fillano:類似JVM,沒有被refer的物件就有機會被free 02/13 10:43
sweetpotatoa:but具名函式好像永遠都不會消失耶... 02/13 22:14
fillano:varname=null; 02/13 23:00
fillano:javascript使用一個reference機制做所有assign value動作 02/13 23:02
fillano:包括呼叫函數時。function x(){}其實是assign一個函數物件 02/13 23:03
fillano:的reference給x變數。所以只要x=null,這個函數物件就可以 02/13 23:04
fillano:被回收了。 02/13 23:04
sweetpotatoa:那如果是匿名函式,它要如何偵測回收的timing?是判斷b 02/13 23:29
sweetpotatoa:ind的物件消失嗎? 02/13 23:29