2012-01-22 40 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

相关问题