javascript - 从服务器自动生成 javascript 代码是个坏主意吗?

标签 javascript facebook code-generation fbjs

我现在正在独自开发一个 facebook 应用程序。我正在尝试对 onclick 事件进行 javascript 调用。在此 onclick 事件中,我根据正在链接的项目填充一些参数(来自 php 的服务器端)。我正在插入一些 JSON 和其他一些带有时髦字符的东西。

Facebook 期望 anchor 的所有属性字段都严格为字母数字。除了 0-9a-Z_ 之外,没有引号、感叹号和任何其他内容。因此,当用户单击该链接时,它会拒绝我想传递给我的 javascript 函数的参数(例如 JSON)。

所以我想,为什么我不使用我的模板系统来自动生成 javascript?对于我要生成的每个链接,我生成一个唯一的 javascript 函数(DoItX,其中 X 是该页面的唯一整数)。然后,我不会尝试通过 onclick 将参数传递给我的 javascript 函数,而是将我的参数作为 DoX 的局部变量插入。在链接“X”上,我只说 onclick="DoX()"。

所以我这样做了,viola 成功了! (它也帮助我避免引述逃离我之前所处的 hell )。但我感到恶心

我的问题是,我疯了吗?有没有更简单的方法来做到这一点?我理解有人能够以某种方式更改我的模板化局部变量的含义,即:

var local = {TEMPLATED FIELD};

插入带有分号的内容,向客户端插入任意 javascript。 (而且我正在尝试编写代码以对此产生偏执)。

什么时候可以(是否曾经可以)从服务器生成 javascript?我应该注意什么/最佳做法?

最佳答案

根据您的应用程序,使用您的模板语言生成 JavaScript 可以节省大量时间,但也有一些陷阱需要注意。最严重的一个问题是,当您没有可用的完整模板堆栈时,测试您的 JavaScript 会变得非常困难。

另一个主要缺陷是尝试将 JavaScript 逻辑“抽象”到某些更高级别的类变得很诱人。通常这是一个迹象,表明你将成为 shaving yaks在你的项目中。在 JavaScript 中保持 JavaScript 登录。

从您提供的少量信息来看,您的解决方案似乎很明智。

关于javascript - 从服务器自动生成 javascript 代码是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653286/

相关文章:

javascript - JQuery 动画横幅

javascript - 在 IE 9 中刷新 fb IFRAME - 不起作用

javascript - 哪个应该生成 HTML : JavaScript or php?

java - 从 AST 生成代码的最佳设计?

visual-studio-2005 - 如何最好地处理 Visual Studio 中的巨大源代码文件

javascript - 有没有办法在页面重新加载之间保存远程资源的 css/js 更改或在 devtools 中将远程资源映射到本地?

JavaScript 温度转换器给出无效或意外的 token 错误

JavaScript 验证日期是否存在

java - 新的(但不同的)Facebook ApplicationId 导致 NPE

java - 如何使用 java 和 eclipse 创建 Facebook 应用程序