我刚读完这篇文章:https://developer.yahoo.com/performance/rules.html#flush,并且在我的页面顶部加载后已经实现了刷新(head,css,top banner/search/nav) .
冲洗时是否有任何性能损失?是否经常这么做?什么是最佳做法?
如果我打算使用外部API获取数据,那么事先进行刷新是否有意义,以便用户不等待该数据返回,并且至少可以获得一些数据?
描述的技术看起来不错,但有几个陷阱:
1)PHP脚本开始和结束之间的时间与传输时间相比较小; 此外,根据您的消息来源,这可以为用户节省大约0.5秒.那是你的大量时间吗?
2)这种技术不适用于gzip输出缓冲
3)如果你经常刷新,你将在刷新时发送一个几乎为空的数据包,这实际上可能会增加加载时间(在缓慢,嘈杂的连接上).
4)一旦刷新,就不能再发送标题了
5)(次要问题)服务器响应将采用分块编码,这意味着客户端不会提前知道大小(因此下载文件时不会显示"x%done").
另一方面,如果您希望脚本运行一段时间(20秒以上),则可能需要发送一些数据(例如空格)以防止浏览器超时连接.
不好的方面是你不能gzip内容以及冲洗它,所以我总是喜欢gzip而不是刷新.
某些版本的Microsoft Internet Explorer只会在收到256字节的输出后才开始显示该页面,因此您可能需要在刷新之前发送额外的空格以使这些浏览器显示该页面.
这使得这不明白,因为看起来填充更多的数据并不是很有用.