問題タブ [precompiled-templates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - プリコンパイルされたテンプレートは、ノード以外のサイトに役立ちますか?
私は_underscoreテンプレートを事前にコンパイルする方法を研究しており、テンプレートを事前にコンパイルしている人の99%がノードを実行しているようだと考え始めています。
これにより、プリコンパイルは、クライアントではなくサーバーでテンプレートをレンダリングする場合にのみ有益であると思われます。
これは本当ですか?
クライアントでのみレンダリングされるサーバー上でテンプレートをコンパイルすることに何か利点はありますか?
knockout.js - Cassette V2 を使用してテンプレート jsRender および KnockoutJS テンプレートをコンパイルする
Cassette のバージョン 2 に移行しています。
しかし、HTML テンプレートをコンパイルするように Cassette を構成するのに役立つ Web は見つかりませんでした。
テンプレート
一部のテンプレート jQuery テンプレートは次のとおりです。
すぐに jsRender を使用できるように変更します。
その他 KnockoutJS として
IConfiguration<BundleCollection>
クラス
javascript - RequireJS を使用したプリコンパイル済みハンドルバー テンプレート
手動でプリコンパイルして、testTemplate.handlebars として保存したハンドルバー テンプレートがあります。
さて、私のrequireJS + Backboneコードには、以下の機能があります-
そのため、testTemplate.handlebars は Javascript コードを文字列の形式で返します。このコードは、Handlebars.template に渡されると JS 関数を返します。this.template 変数で取得した値をコンソールに出力しようとすると、次のように表示されます-
ただし、$(this.el).html(this.template(data));
render 関数の行が実行されると、「Uncaught Typeerror : object has no method call.」というエラー メッセージが表示されます。(e.call機能は見えますが)
ここで何か間違っていますか?
また、テンプレート ランタイムをコンパイルしようとすると、render 関数が機能します。ランタイム コンパイル Handlebars.compile(testTemplate) 中に、以下の関数が返されます -
javascript - カスタム ヘルパーを使用したハンドルバー テンプレートのプリコンパイル
message.handlebars
ブラウザでコンパイルするときに完璧に機能するテンプレートがあります。
私はそれをhandlebars -message.handlebars -f -message.js
正常にプリコンパイルしました。
次に、ASP.NET MVC サイトで、参照を次のように追加しています。
にはhandlebars-helpers.js
、メッセージ テンプレートで使用されるいくつかのカスタム ヘルパーが含まれています。
この男のコメントからこのアプローチを取りましたが、うまくいきません。を実行するとエラーが発生しvar html = Handlebars.templates.message(data);
ます。これも、ブラウザでコンパイルすると完全に機能するため、コンテキストの問題ではありません。
私が得ているエラーは次のとおりです。
これは、カスタム ヘルパーをプリコンパイルして使用するための正しいアプローチですか? または、これらのヘルパーをプリコンパイル済みテンプレートに含める方法はありますか?
javascript - Jurassic を使用して JsRender テンプレート サーバー側をプリコンパイルする
JsRender を実行するためにジュラシック スクリプト エンジンを使用して、C# で記述されたクラス ライブラリから JsRender テンプレートをプリコンパイルしようとしています。
これが私のコードです:
このページ$.templates()
からJavaScript 関数呼び出し を取得しました。
$.templates(markupOrSelector) の戻り値: コンパイルされたテンプレート オブジェクト
そして、私のサンプル HTML テンプレートは単純です
ただし、私のコードでは例外が発生します。
ここで、jQuery が存在しなくても $ 演算子を使用できるかどうかは 100% 明確ではありません。著者は、いくつかの例に jQuery を含めていますが、jQuery は必須ではないとも述べています。
それで、何がうまくいかないのですか?この質問を投稿した同じ日に GitHub から取得した JsRender のバージョンのドキュメントは古くなっていますか? (JsRender がまだベータ版であることは承知しています。) それとも、ジュラシックを誤用しているのでしょうか?
編集:
これは実際には JsRender の質問というよりジュラ紀の質問だと思います。具体的には、これは Jurassic のグローバル オブジェクトに関連していると思います。JsRender は を渡す即時呼び出し関数にラップされておりthis
、Jurassic が提供するかどうかはわかりませんthis
。
この質問に直面したのは私が初めてではないようです。このページの最後の投稿からアドバイスを受けて、コードを次のように変更しました。
これはうまくいきませんでした - おそらく JsRender の IIF がthis
代わりに渡さwindow
れ、スクリプトを変更したくないためです。
誰でもこれを前進させるのを助けることができますか? ジュラシックを考えると、ジュラシックからJsRender関数を呼び出すにはどうすればよいですか...わかりません...おそらく、ジュラシックがグローバルオブジェクトを実装する方法にいくつかの概念的な違いがあります。
node.js - Handlebars JS は、サーバー上でレンダリングするよりも高速にプリコンパイルされていますか?
ハンドルバーに関する完全な初心者の質問について、事前にお詫び申し上げます。私は Rails のバックグラウンドを持っており、Handlebars はクールに見えますが、サーバー上でビューをコンパイルするよりも優れているとは思えません。
それでは質問です。
現在、私たちのアプリはノード サーバーで Handlebars JS テンプレートをコンパイルし、完全にレンダリングされたページをクライアントに返します。クライアントでレンダリングするためにテンプレートをプリコンパイルすることを検討するように依頼されました。
まず、これをどのように設計するかについて、私は少し困惑しています。クライアントへの最初のダウンロードがレイアウト テンプレートのようなもの (ボイラープレートの html、css、および js) である場合、クライアントは、Handlebars.templates にあるプリコンパイル済みのテンプレートと共に、渡された JSON データを使用して構築します。ビューの詳細?
もしそうなら、必要なときに必要なものだけを提供するよりも、クライアントが必要とする可能性のあるすべてのテンプレートをロードする方が本当に効率的ですか?
javascript - ハンドルバーを使用して、事前にコンパイルされたテンプレートから埋め込まれた部分テンプレートをレンダリングしますか?
期待どおりにレンダリングされるコンパイル済みのハンドルバー テンプレートがあります。
プリコンパイルしているテンプレートに埋め込み (プリコンパイルされていない) 部分参照を追加することにしましたが、パーシャルのコンテンツが適切にレンダリングされません。
最終結果は、埋め込まれたパーシャルのコンテンツがレンダリングされた HTML に含まれることです (私のパーシャルは「部分的に」機能していると思います :-D )。
- パーシャルの名前も各行に含まれています
- パーシャルの式にデータが入力されていません
これは、レンダリングされる HTML です。部分的な名前の 3 行をtemplateBodyItemNumberPartial
以下に示します (部分的な名前は、出力の各行の前に付けられているようです) <span>
。
templateBodyItemNumberPartial
これは、部分を参照するメインのプリコンパイル済みテンプレートです。
nameWithPartial
これは、パーシャルを定義/登録し、コンパイル済みのテンプレートを呼び出す .html ファイルです。
パーシャルがハンドルバーでどのように機能するかをテストするためだけに、埋め込まれたパーシャルを使用しようとしています。
この機能がサポートされているかどうかを誰かが確認できますか、またはパーシャルを参照するメイン テンプレートがプリコンパイルされている場合、プリコンパイルされたパーシャルを使用する必要がありますか?
どうもありがとう!
ところで、私はWin7 Pro 64ビットを実行していますが、うまくいけばそれは問題ではありません...