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
}

しかし、私はそれを過負荷にできませんでした。私がばかであるか、このように行われていないかのどちらかです。関数を PHPに「移植」して、parse事前に解析されたテンプレートをアプリケーションに送信できるようにします。(そして、他の人がこの種のテンプレートを見たときに実際にはそれほど変更できないため、盗難防止に関しては大きなプラスがあります)

standalonePHPに移植できるように、パース関数を手に入れる可能性があるかどうか疑問に思っています。

4

1 に答える 1

2

解析コードは github hereにあります

そうは言っても、テンプレートを事前解析する場合は、通常、テンプレートを提供するたびにではなく、ビルド プロセスの一部としてのみ行われます。また、Ractive テンプレートを事前解析する既存の方法が複数あります。チェックアウト: http://docs.ractivejs.org/latest/tips

これらのほとんどはノードを使用しますが、ビルド ページを使用してブラウザーで解析し、サーバーにポストすることもできます。

これらのオプションをビルド プロセスに統合することは、パーサーを PHP に移植するよりもはるかに簡単に思えますが、それはあなた次第です。

于 2014-07-15T19:29:16.917 に答える