在JavaScript中使用Mako模板
我正在做一个仪表盘,使用的是 Python
的 cherrypy
框架和 Mako
模板语言。
我为每个仪表盘页面准备了一个 html
文件。
在这些文件中,我用 Mako
把一些数据传递给 html
和内嵌的 Javascript
。
比如说,当我只有一些进程的 ID 列表时,我想显示这些进程的名字,就把一个 Python
的 dict
(字典)传递过去,这个字典把 ID 和对应的名字关联起来,然后在 ${}
标签中使用这个字典。
不过,现在我把这些 Javascript
代码移到一个单独的 .js
文件里时,发现直接把相同的 Mako
代码块放在 Javascript
代码里是行不通的。
有没有办法在一个外部的 .js
文件中使用 Mako
模板语言,而这个文件又是被引入到一个 html
文件里的呢?
这样做算不算不好的做法?我是不是应该在把数据传给 Javascript
时,使用 XMLHTTPRequest
来传递所有这些数据?
1 个回答
1
Ajax是处理这个问题的“正确”方式。
如果你想把值动态地插入到你单独的JavaScript文件中,这个文件就不能再作为静态文件来使用了。此外,这样做还会增加一些额外的安全和维护问题,因为你需要处理字符串转义、可能的脚本注入,以及在你的JavaScript中使用Mako语法。更不用说,这样做会失去在CDN或配置为静态文件的服务器上托管你的.js
文件的能力。