我正在尝试使用 JSF 中的 HtmlDataTable 动态生成一个表。当我给出的行数和列数均大于 25 时,某些单元格不会仅在 IE 中填充,而且速度非常慢。但是,我可以在使用 Firebug 调试代码时看到该值。它在 Firefox 和 Chrome 中运行良好。
这是如何引起的,我该如何解决?
我正在尝试使用 JSF 中的 HtmlDataTable 动态生成一个表。当我给出的行数和列数均大于 25 时,某些单元格不会仅在 IE 中填充,而且速度非常慢。但是,我可以在使用 Firebug 调试代码时看到该值。它在 Firefox 和 Chrome 中运行良好。
这是如何引起的,我该如何解决?
众所周知,Internet Explorer 的表格渲染器极差。尤其是当列和表嵌套过分热心时。
除了通过引入延迟加载和分页来缩小表格之外没有其他解决方案,这样一次只能显示 10~100 行。如有必要,添加搜索过滤器。额外的好处是它也更加用户友好。例如,谷歌也不会在没有过滤和分页的情况下显示怪物表中的所有无数网站链接。
如果您碰巧使用 PrimeFaces,请使用<p:dataTable>
withLazyDataModel
。
根据评论进行更新,如果您无法更改服务器端代码,则没有其他选择。您最好的选择可能是通知最终用户她/他应该使用真正的浏览器。
例如
<script>
var ie = /*@cc_on!@*/false;
if (ie) {
window.location = 'some_page_which_recommends_different_browser.xhtml';
}
</script>