0

我已经看到有模板解析器将模板转换为不太易于阅读的形式,所以我想如何从已经解析的 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。

4

1 回答 1

2

解析代码在github 上

话虽如此,如果您要预解析模板,它通常只作为构建过程的一部分发生,而不是每次您提供模板时。并且有多种现有的方法来预解析 Ractive 模板。结帐:http ://docs.ractivejs.org/latest/tips 。

其中大多数使用节点,但您甚至可以使用构建页面在浏览器中解析它们并将它们发布到服务器。

将这些选项中的任何一个集成到您的构建过程中似乎比将解析器移植到 PHP 更容易,但这取决于您。

于 2014-07-15T19:29:16.917 回答