5

私はCallbackInterfaceでdust.jsを使用してきましたが、かなり快適です。ここで、ストリーミングインターフェイスについて詳しく知りたいと思います。

私はここここでドキュメントを調べてきましたが、概念は私を逃れます。

私の質問は次のとおりです。

  1. ストリーミングテンプレートとはどういう意味ですか?私には、それを使用して、データがプッシュされたときに、テンプレートに対してそのデータをレンダリングすることによって応答するオブジェクトを設定できるように思えます。

  2. どのような場合に、コールバックインターフェイスの代わりにストリーミングを使用しますか?

  3. 私の学習に役立つ可能性のあるコードサンプルはありますか?

ありがとう!

4

1 に答える 1

6

コールバックインターフェイスでは、レンダリングされたテンプレートを使用できるのは、テンプレート全体のレンダリングが完了した後(コールバックを提供することによって)のみです。これにより、レンダリングされたテンプレートがDOMに挿入されることがよくあります。

ストリーミングインターフェイスでは、レンダリングプロセスのほぼすべての部分をより細かく制御できます。たとえば、ページの一部をレンダリングする場合など、レンダリングされたチャンクを出力ストリームに配置する方法などです。

コールバックインターフェースを使用する場合、コールバックインターフェースには常に追加される「out」属性があり、最終的には、提供するコールバックの2番目のパラメーターとして提供されます。ストリーミングインターフェイスでは、新しく処理されたチャンクが利用可能になると、「data」というイベントを発行し、データを処理するためにそれをユーザーに任せます。

したがって、レンダリングしたい非常に大きなテンプレートがある場合、テンプレートをチャンクに分割できます。チャンクが完了すると、「データ」イベントが発行され、そのチャンクをDOMに配置するためのハンドラーが定義されます。つまり、レンダリングプロセス全体が終了して、ページに表示が開始されるのを待つ必要はありません。

これは、たとえば、アプリの複数のページを一度にレンダリングしたいが、ユーザーに1ページだけを表示したい場合(たとえば、jquerymobileを使用している場合)、ストリーミングインターフェイスを使用して最初のページを取得するのに役立ちます。残りの部分を非同期でレンダリングしながら、できるだけ速くユーザーにページを表示します。お役に立てれば

于 2012-09-04T02:41:43.697 に答える