【发布时间】:2016-07-05 01:49:23
【问题描述】:
所以基本上我在内部应用程序中有一个部分,允许用户通过Summernote.JS修改/编辑 HTML。
我面临的问题是加载时间很可笑,我似乎只在 Chrome 中遇到过这种情况。
正在编辑的 HTML 内容的长度为 150252,因为有 base64 内联图像。加载时间如下..
Chrome (Version 51.0.2704.106 m): 39.53 seconds
Firefox (Version 43.0.1): 2.08 seconds (onload: 2.74s) - 629.8KB
Internet Explorer (Version 11.0.9600.17843): ~2.8 seconds
下图是 Chrome 完全刷新时的加载时间。
有趣的是,当我删除上述内容的回声时,页面加载的瞬间
<textarea id="content" name="content" placeholder="Simply enter the section content below.."><?php echo $this->section->section; ?></textarea>
现在我发现了这个old bug on PHP.net(经过一番认真的搜索,哈哈),它说 PHP 的 echo 处理通过 TCP/IP 缓冲到浏览器的数据非常糟糕,因为 Nagle Algorithm .
没有将内容保存到临时文件并使用readfile() 来获取内容(这会返回原始性能),我还能做些什么来在 chrome 中解决这个问题?分块输出数据?过程不会过于复杂。
【问题讨论】:
-
你可能会责怪 chrome 的拼写检查器。禁用它(在设置 -> 语言 -> 语言和输入设置 -> 底部的复选框)并告诉性能是否有任何差异?
-
@zerkms 只是边际性能提升 - 测试从
22 seconds-34 seconds变化。 -
@zerkms 结果是 - 当跨度/字符串长于
2^16时,这是一个 Chrome 错误,导致它无法很好地转化为视图
标签: php google-chrome