2012-01-22 143 views
2

我最近遇到了JavaScript中的foo.toSource()選項。這允許一個函數的序列化。 我想知道通過網絡傳輸功能的可能性,從服務器到客戶端,並在以後執行 - 用eval()。將函數從服務器傳遞到客戶端

你認爲它確實有用嗎?
有沒有使用這種範例的框架?

+1

1)'toSource()'是IE瀏覽器,請參閱[此問題]的答案(http://stackoverflow.com/questions/171407/implementing-mozillas-tosource-method-in-internet-explorer)for在其他瀏覽器中的實現。 2)'toSource'與你所問的問題有什麼關係? –

+1

我建議你不要使用eval();它很慢,並且如果代碼是用戶生成的,則會導致XSS風險。 –

+0

謝謝。我的問題更具理論性。我並不是想說明爲什麼要這樣做(toSource只是一種序列化通過網絡傳輸的函數的可能方式)。 – Ofri

回答

0

將函數從服務器傳遞到頁面可以在不使用toSource的情況下完成,只需在服務器上生成頁面時將其放入代碼中,或者在需要時通過AJAX請求。

+0

謝謝!是的,我想到了你在說什麼,這導致我的下一個問題/奇蹟:是否有可能通過它的關閉來傳遞函數?你認爲這種功能會有用嗎? – Ofri

0

唯一的使用情況下,我看到的是:

    只要發送的.js文件
  1. JSNOP

沒有想過的事情是不是更多鈔票。所以我們只能發送函數的文本表示,而不是上下文或關閉以及所有這些東西。

+0

好的,謝謝!這很有幫助。我想我沒有想到這一點。 – Ofri

相關問題