3

さまざまなリソース (広告、フィード、友達など) を取得する複雑なページを作成するときに、Facebook がページを「ページレット」に分割してサーバーとブラウザーによって行われる作業を最大化する方法に関する非常にクールな記事。彼らはそれをビッグパイプと呼んでいます。

steve soudersは実際に彼の講演の 1 つでこれについて話し、「ドキュメントを早期にフラッシュする」と言及しました。

.NET では、これを簡単に行うことはできませんが、render メソッドをオーバーライドし、応答バッファーを早期にフラッシュすることで実現できたので、可能であり、かなりうまく機能します。しかし、私はこの大規模でそれを試したことはありません。私の質問は、.NET で BigPipe を構築することは可能ですか? 彼らは、Java と PHP で自分たちのものを構築したと言いました。.NETでもできると思いますが、.NETのwinformsアーキテクチャがこのようなことをするのに最適ではないのではないかと思っています.

このようなものを構築するプロジェクトを社内で推進することを検討していますが、これは小さなプロジェクトではないため、さらに多くの調査を行う必要があります。任意のページをこれらの「ページレット」に分割することをサポートできるものを構築したいと思います。.NET では、カスタム ユーザー コントロールをこれらの「ページレット」に変換し、それらをまとめてすべて「フラッシュ」できると便利な場合があります (bigpipe スタイル)。

コメント/考え?

4

1 に答える 1

3

ページレットのコンテンツを早期にフラッシュして並行して実行することにより、ASP.Net MVC Web プロジェクトに BigPipe のバージョンを実装しました。How To Implement BigPipe Using ASP.Net MVCで読むことができ、 GitHubで fork できます。

ページレットを PartialViews として実装し、HTML ドキュメントの最後で<body>セクションを閉じる直前に実行する場合、この手法は簡単に適用できます。

さらに、BigPipe を最大限に活用したい場合は、ページレットに必要な Javascript と CSS を特定の順序でロードして、最高のユーザー エクスペリエンスを提供する必要があります。BigPipe はページレットの HTML をページに挿入する前に CSS リソースを並行してロードし、すべてのページレットが挿入されると、Javascript の並行ダウンロードと実行に進みます。

于 2010-09-26T14:13:07.817 に答える