サーバー上でクライアント側アプリ(Backbone.jsで記述)をブートストラップして、クローラーと非jsコンシューマーに正しいコンテンツを提供できるようにするソリューションを探しています。
アプリをブートストラップするためにjsdomとnodejsをいじってみましたが、基本的なテンプレートコンテンツを読み込むまでは取得できますが、アプリが起動しないようです。
必要なすべての依存関係があり、アプリが正しく読み込まれていることを確認するために、2つの異なるソリューションを試しました。
- 通常インラインで含まれているすべてのスクリプトでjsdom.env()を使用してみました。
- jsdom.jsdom()を使用して、FetchExternalResources、ProcessExternalResources、およびMutationEventsがすべて正しくオンになっていることを確認してみました。
ただし、どちらもwindow.onloadイベントを発生させないようです。jsdomがこれを起動しない可能性があるのか、それとも通常は起動された後にコールバックと呼ぶのか疑問に思います。
これはjsdomで可能なタスクですか?