0

https://github.com/jehrhardt/bigpipe-node/blob/master/app.js http://www.subbu.org/blog/2010/07/bigpipe-done-in-node-js

bigpipeのすべての実装でHTMLを「フラッシュ」する必要があることに気づきました。言い換えれば、このようなことが常に起こります:

// header n stuff

res.write('<script>function flushHTML(id, html) {'
  + 'document.getElementById(' + id + ').innerHTML = ' + html
  + '};</script>')

// more stuff

// a "pagelet"
res.write('<script>flushHTML(' + someID + ', ' + myHTML + ');</script>')

res.end('</body></html>')

res.write(html)フラッシュせずに各セクションだけを実行できないのはなぜですか?

4

1 に答える 1

1

重要なのは、HTML全体を生成するという大きなタスクを多くの小さなタスク(別名ページレット)に分割することです。たとえば、ユーザーの詳細とユーザーが行ったトランザクションの詳細の2つをブラウザーに送信するとします。これらのタスク(つまり、DBからのデータのロード)とその後のHTMLの送信の両方を実行する代わりに、DBからユーザーをロードしてブラウザーに送信し、次にDBからトランザクションをロードしてブラウザーに送信します。

これにより、ユーザーエクスペリエンスが向上し、読み込み時間が短縮されます(ブラウザーは、一度にすべてよりも効率的なHTMLチャンクをチャンクごとに生成するため)。

これはFacebookで開発された(または少なくとも広く使用されている)ことに注意してください。詳細については、この記事をお読みください。

http://www.facebook.com/note.php?note_id=389414033919

于 2012-10-31T07:50:14.610 に答える