4

サーバー上でクライアント側アプリ(Backbone.jsで記述)をブートストラップして、クローラーと非jsコンシューマーに正しいコンテンツを提供できるようにするソリューションを探しています。

アプリをブートストラップするためにjsdomとnodejsをいじってみましたが、基本的なテンプレートコンテンツを読み込むまでは取得できますが、アプリが起動しないようです。

必要なすべての依存関係があり、アプリが正しく読み込まれていることを確認するために、2つの異なるソリューションを試しました。

  1. 通常インラインで含まれているすべてのスクリプトでjsdom.env()を使用してみました。
  2. jsdom.jsdom()を使用して、FetchExternalResources、ProcessExternalResources、およびMutationEventsがすべて正しくオンになっていることを確認してみました。

ただし、どちらもwindow.onloadイベントを発生させないようです。jsdomがこれを起動しない可能性があるのか​​、それとも通常は起動された後にコールバックと呼ぶのか疑問に思います。

これはjsdomで可能なタスクですか?

4

1 に答える 1

5

jsdom は (まだ) images/css をフェッチしないので、window.onload を待ちません。jsdom.env を使用する場合、コールバックを単純に「準備ができました」イベントとして扱うことができます。

アプリが window.onload に依存している場合は、前述のコールバック内でトリガーできます。

于 2011-08-17T02:29:14.410 に答える