Internet Explorer 中的渐进式表格呈现

Posted

技术标签:

【中文标题】Internet Explorer 中的渐进式表格呈现【英文标题】:Progressive Table Rendering in Internet Explorer 【发布时间】:2016-08-14 21:12:10 【问题描述】:

我正在尝试在 Internet Explorer 中逐步呈现表格。它在 Firefox 中逐步呈现 - 但在 IE 中。它将它呈现在内存中,因此表格需要更多时间才能显示出来。

我在表格中添加了一个固定布局,并设置了一个 colgroup/col -

这就是代码的样子(我正在用 C# 构建它并使用引导程序):

sb.Append("<table class='table table-condensed small table-hover table-bordered' style='table-layout: fixed;'>");
sb.Append(@"<colgroup span=13>
             <col width='350'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
             <col width='*'>
               </colgroup>");

【问题讨论】:

能否请您稍微解释一下您的渐进式表格的目的,以便帮助我提供适当的解决方案?谢谢 找考古学家 :) 【参考方案1】:

您不能使用 C# 代码进行渐进式 html 渲染。您的所有 C# 代码都将在页面发送到服务器之前执行。

【讨论】:

我说的是表格开始流式传输到 Web 浏览器后的渐进式渲染。抱歉,如果不清楚。 是的,非常清楚。但很可惜,这并没有发生。 C# 不会执行一点,然后流到服务器,执行一点,流更多...没有。【参考方案2】:

您的 html 组合代码将在服务器上执行,然后组合的 html 将立即发送到您的浏览器作为响应。您在 Firefox 中看到的渐进式渲染只是一种错觉,因为 html 响应流开始并且数据流向 Firefox,它开始渲染。然而 IE 首先完全验证 html 直到表格的结束标记然后呈现它。

要进行渐进式 html,您可以使用潜水而不是表格。这是一种更有效的方法,通过让您的设计响应式设计,您将能够从引导程序中获得真正的好处。

如果 table 是您唯一的选择,那么您应该指定 table-layout CSS 属性以实现 Internet Explorer 5 或更高版本的最佳性能。通过执行以下操作,您将允许 Internet Explorer 在接收到所有数据之前开始呈现表格。

将 table-layout CSS 属性设置为固定在桌子上。 为每一列显式定义 col 对象。 在每个列上设置 WIDTH 属性。

在https://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx#Use_Fixed-Size_Tables查看更多详情

【讨论】:

在任何情况下都会这样做吗?我曾多次看到在 Internet Explorer 中逐步呈现表格。我想知道是不是因为某些初始列被隐藏了才导致它发生。 您是对的,您应该指定 table-layout CSS 属性以实现 Internet Explorer 5 或更高版本的最佳性能。通过执行以下操作,您将允许 Internet Explorer 在接收到所有数据之前开始呈现表。 => 将 table-layout CSS 属性设置为固定在桌子上。 => 为每一列显式定义 col 对象。 => 在每个列上设置 WIDTH 属性。更多详情见链接msdn.microsoft.com/en-us/library/…【参考方案3】:

由于 IE 将整个 html 块呈现为整个表格,因此只有在 IE 完成对 Asad Mehmood 所指出的封闭标记的验证时才会加载该表。而是使用 div。

【讨论】:

谢谢。我希望它是可以逐步呈现的表格而不是 div。但如果这是唯一的选择,那么我应该给你赏金。 我相信在您的情况下,div 会为您提供使用引导程序的灵活性。但是祝你好运,编码愉快:)

以上是关于Internet Explorer 中的渐进式表格呈现的主要内容,如果未能解决你的问题,请参考以下文章

SVG <title> 中的多行 (Internet Explorer) |换行符,表格

Internet Explorer 中的溢出表错误

Internet Explorer 8 忽略了“显示:表格单元”元素的宽度

Internet Explorer 9 无法正确呈现表格单元格

带有 colspan 集的 Internet Explorer 8 表格单元格宽度错误

引导输入组在 Internet Explorer 中将表格推到超出屏幕宽度