我已经看到了一些模板解析器,它们将模板转换成不那么可读的形式,所以我想如何从PHP中发送已经解析过的模板。
有些模板很大,有很多表达式。这会改善表演吗?即使这是一个可以忽略不计的因素,它是否可以避免浏览器再次解析模板?
如果是这样的话,我已经查找了这个函数,并尝试过重载它,这样我就可以理解这些变量是什么,如下所示:
Ractive.parse = function (a) {
var b = arguments[1]; console.log('b', b);
void 0 === b && (b = {});
var c, d, e, f, g, h; console.log('c,d,e,f,g,h', c, d, e, f, g, h);
if (c = { v: 1 }, m.test(a)) {
console.log('m', m);
for (d = a, a = ""; g = m.exec(d);) {
if (f = g[1], a += d.substr(0, g.index), d = d.substring(g.index + g[0].length), h = n.exec(d), !h || h[1] !== f)
throw new Error("Inline partials must have a closing delimiter, and cannot be nested");
(e || (e = {}))[f] = new j(d.substr(0, h.index), b).result, d = d.substring(h.index + h[0].length)
}
c.p = e
}
console.log('j',j)
return c.t = new j(a, b).result, c
}但我没能让它超载。要么我傻了要么不是这样做的。我希望将parse函数“移植”到PHP中,这样我就可以向应用程序发送预解析模板。(而且在防盗方面也有很大的好处,因为当别人看到这种模板时,他们不会有那么大的改变)
我想知道是否有可能获得standalone解析函数,这样我就可以将它移植到PHP。
发布于 2014-07-15 19:29:16
解析代码在github 这里上
也就是说,如果要准备模板,通常只作为构建过程的一部分进行,而不是每次提供模板时都会发生。并且有多种现有的方法来准备Ractive模板。结帐:http://docs.ractivejs.org/latest/tips。
其中大部分使用节点,但您甚至可以使用构建页在浏览器中解析它们并将它们发布到服务器。
将这些选项集成到构建过程中似乎比将解析器移植到PHP要容易得多,但这取决于您。
https://stackoverflow.com/questions/24727634
复制相似问题