2011-07-13 55 views
0

我寫了一些Javascript(特別是一個jQuery插件),其中我用一個eval的結果替換了一些標籤的內容,給了我一些模板機制。使用eval()會增加內存消耗嗎?

我的問題是:反覆使用eval()是否會導致內存問題?

我問的原因是,當我看着使用Firebug加載的腳本時,我看到列出的所有已評估的代碼,所以我擔心如果用戶在瀏覽器中使用此應用程序,可能會導致記憶問題。

+3

一個聰明人曾經說過:如果'eval()'是答案,你肯定會問錯的問題! – BenM

+0

取決於您的評估代碼。先上傳他們中的一些。 – Starx

+0

我不知道內存消耗,但已知eval()編輯代碼的運行速度要慢得多。 – Spudley

回答

2

除了使用eval是一個壞主意之外,在設置它時幾乎肯定會有一些內存開銷。

此外eval代碼不會被優化**,因爲沒有機會進行緩存或其他優化。

**取決於瀏覽器。

+0

嗯,我真的不能接受這個答案,因爲問題是eval()是否會增加內存消耗,而且你給了我一個「幾乎肯定「,這很接近」可能「。 – mydoghasworms

+0

那麼你期望與所有不同類型的JavaScript引擎/瀏覽器/編碼方式/使用eval的方式? – Griffin

+0

你是否可能有一個鏈接來解釋在任何瀏覽器中使用eval()的開銷(特別是從內存的角度來看)(即使只有一個)? – mydoghasworms