1
barbery 2014-08-28 14:32:13 +08:00 1
|
2
kmvan OP @barbery 原来如此,难怪echo内容越多,处理的时间就越长。这样说来,直接在php页面里面写 <div....> 比 echo '<div...>'; 要好哦
|
3
anjianshi 2014-08-28 16:01:18 +08:00
@kmvan 只针对上面给出的代码来看,这种做法完全是多次一举
他绕了那么大一圈,最后还不是用 echo 把这个字符串给打印出来了? 这就已经跟一楼给出的链接没有关系了 打个比方就是: 静脉注射比直接吃药吸收的快 于是他把药静脉注射了之后立刻拦截并抽了出来,然后又用嘴喝了下去 |
4
Sunyanzi 2014-08-28 18:14:48 +08:00
首先说 @kmvan 你的想法是错的 ...
直接在标签外面写 html 的确比 echo html 效率更高 ... 但这并不是 echo 的错 ... 这个高效率来源于不经 php 引擎的直接输出 ... 只会快几十微秒而已 ... 如果要输出很长的内容 ... 不管把内容写在标签外还是用 php echo ... 效果几乎是一样的 ... 鸟哥那篇文章的意思是通过开启缓存来减少 php 向 webserver 发送内容的次数 ... 其次说我大概是两个小时前看到这个帖子的 ... 琢磨来琢磨去 ... 也没想出这么做的理由 ... 所以我个人觉得你应该去问问你那个同事这么写是为什么 ... 而不是在论坛发问 ... 如果非要猜 ... 我能想到的唯一的可能性是你的同事需要实时的 raw output ... 从你贴的这段代码里可以看到两个事情 ... 第一 ... 你的同事没有显式的写 ob_start() 就直接用了 ob_get_contents() ... 第二 ... 你的同事没有直接用 ob_end_flush() 而是取得内容之后自行 echo ... 根据这两点我猜测 ... 一种可能是 php 开启了 output_buffering ... 而你的同事等不及在 php 执行完毕时统一输出才选择这种降低承载的方式 ... 另一种可能性是在你的同事碰触不到的代码里会自动执行挂着回调的 ob_start() ... 具体可以参考某些奇葩框架启动内置模板引擎的方式 ... 你的同事并不想自己 echo 的内容被那个回调所处理 ... 所以选择了这种方式 ... 除了这两种之外我想不到其他了 ... 「写习惯了」什么的理论都完全站不住脚 ... 如果你去问了 ... 欢迎回复一下我是否有猜对 ... |