【问题标题】:Forcing IE to render output in table强制 IE 在表格中呈现输出
【发布时间】:2012-02-08 17:04:52
【问题描述】:

我可以在使用 php 时让 Internet Explorer 呈现页面吗

flush()

在表格中,Internet Explorer 将在呈现信息之前等待

的其余部分。 Firefox 会立即呈现它。

编辑: 我正在使用表格来显示有关服务器和服务的实时信息。 例如:

第一列是服务器名称。

第二列是服务器状态,我是通过ping机器得到的。

有没有更好的方法来显示这些信息?

【问题讨论】:

  • flush() 只是将缓冲区中的任何输出发送到客户端浏览器。如果客户端 Web 浏览器不呈现它,您唯一能做的就是将输出的内容更改为客户端浏览器确实呈现的内容。
  • +1 虽然我只是认为 IE 就是这样工作的。因此(其中一个)我们不再使用表格进行布局的原因。 (
  • 所以基本上是@yes123 所说的。如果 IE 拒绝呈现部分编码的表格,请将格式更改为表格以外的格式。

标签: php html internet-explorer


【解决方案1】:

在您的样式表中设置table-layout: fixed 将阻止一些浏览器(可能包括IE)在呈现之前等待整个表格(当然它也会阻止浏览器根据内容大小重新呈现它)。

【讨论】:

    【解决方案2】:

    不,只是调用flush() 会导致 PHP 将其缓冲区推送到 Web 服务器,仅此而已。即使 IE 有表格的数据,它也不会提前渲染。

    您唯一能做的就是使用 JavaScript 创建一个表并逐个添加。当然,这很荒谬,你永远不应该这样做。它会非常慢。

    对于这种行为,您无能为力(没有 Quentin 的建议,它会改变您的布局),当然在服务器端也无能为力。

    【讨论】:

      【解决方案3】:

      我建议继续使用列表而不是表格。这样,速度更快。标记有点相似,所以你不会出错。

      <ul class="servers">
          <li>
              <span class="serverName">server1</span>
              <span class="serverStatus">OK</span>
          </li>
          <li>
              <span class="serverName">server2</span>
              <span class="serverStatus">NOT OK</span>
          </li>
      </ul>
      

      【讨论】:

        猜你喜欢
        • 2013-01-11
        • 2013-09-06
        • 1970-01-01
        • 2010-12-02
        • 2014-06-22
        • 2013-12-07
        • 1970-01-01
        • 2011-01-05
        • 2017-12-04
        相关资源
        最近更新 更多