zoukankan      html  css  js  c++  java
  • Bigpipe :bigpipe的了解之2

    这周是工作的空窗期,对前段时间看的bigpipe又重新翻阅了一遍,发现不知道是不是因为时间的推迟,自己理解的上次深入多了,记一下。

    1.bigpipe适合较为大的页面,页面的各个模块之间相对比较独立。

    2.bigpipe模式里,服务器端是分段输出的。一个请求,多次输出,边处理边输出

      这个是我之前疑惑的地方之一。按传统的加载方式,请求一个url,服务器返回给客户端也就是浏览器,一个html文档,随机,请求结束。但是在bigpipe模式里,请求一个url,先是 返还给浏览器一个框架的html文档。然后再对每一个pagelet进行组装。组装完成就输出给页面。然后再组装再输出。这些都是一个请求完成的。

    3.bigpipe针对每一个pagelet,组装输出的是js。

    额 我只能说,这个我最初想多了。我原先的想法,既然一个接口能边处理边返回信息。那么作为浏览器 怎么知道这个时候输出信息了呢,又不像Ajax,还有个状态码的提示。事实是,组装好了一个pagelet后,就以js的方式直接输出页面。而再这之前,再加载框架html后,服务器以极高加载了一个用于处理这些bigpipe js的js文档。

    bigpipe模式的缺点:

    由于bigpipe模式是js加载页面,内容都为动态添加,因此对少量的不支持js的浏览器就会造成障碍,对搜索引擎也有较高难度的辨识。我在网上看到的解决方案是:在服务器端首先要根据user-agent 判断客户端是否是搜索引擎的爬虫,如果是的话,则转化为原有的模式,而不是动态添加。这样就解决了对搜索引擎的不友好。这种方法应该不是很好吧。

    了解了几本的原理,下一阶段的任务:前端的bigpipe的js的编写(感觉这个应该不是很麻烦),php端处理模式的了解。

  • 相关阅读:
    java数据库连接池proxool介绍及mysql8小时断开连接问题的说明
    golang 做了个mutex与atomic性能测试
    Pcre 安装
    go err
    go if switch range
    Nginx 处理Http请求头部流程
    go 指针
    golang struct、interface详解
    go slice详解
    Linux基础
  • 原文地址:https://www.cnblogs.com/lxin/p/2726443.html
Copyright © 2011-2022 走看看