【问题标题】:mootools: I want to implement architecture similar to Big pipe in Facebookmootools:我想在 Facebook 中实现类似于 Big pipe 的架构
【发布时间】:2011-06-22 12:18:57
【问题描述】:

我正在 mootools 中开发一个应用程序。我已经使用 Reqeust 类来实现它的流水线操作。 我想开发一种更好的方法来处理客户端服务器请求。我参考了以下文章来了解大管道在 facebook 中的工作原理。

http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919

在 facebook 中,当任何服务器响应到达时调用 javascript 函数来更新数据用户屏幕。 (见截图)

http://img815.imageshack.us/img815/5154/facebookna.jpg

如果我得到了这种架构的基本模型,我可以开始使用它来构建应用程序 代码。

谁能给我这样一个基本的模型?

到目前为止,我已经设计了一个架构,其中 response_data 存储在一个全局变量中,然后调用一个函数来将数据更新到用户屏幕。(此处使用同步请求)非常慢。

那么“同步或异步”哪种方法更优越?

【问题讨论】:

    标签: javascript mootools javascript-framework


    【解决方案1】:

    首先,感谢您的阅读,这是一篇非常有趣的博文。

    您可能想查看受 Facebook 的 BigPipe 启发的this libary。注意:我不认可它,因为我从未使用过它,但自己构建它并非易事。

    关于同步和异步是否更好,这取决于。同步是更简单 - 依赖性很明显,并且没有开销。仅当您的资源没有被充分利用时,异步才是一个优势,并且您的处理可以很容易地分解成独立的块。我不知道您要做什么,因此您需要自己决定性能瓶颈实际在哪里,以及构建您的应用程序以便可以并行下载、处理和呈现多个部分是否实际上会提供优势。

    例如,如果您正在下载单个大量数据块以在浏览器中呈现为表格,那么将该数据分成多个并行下载将提高性能 - 代价是创建一些排队系统处理乱序响应。另一方面,虽然技术上较慢,但将下载分批成同步块,以便在请求下一个块之前下载并渲染一个块,仍然会对感知性能产生奇迹,而且更简单替代。

    【讨论】:

    • 那个 gitHub 项目真的很棒......我也构建了一个类似且足够满足我需要的代码。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多