我有一个大的“网格”数据,生成和转储大约需要40秒作为纯文本。如果我用html表格式包装文本(具有固定的td宽度),则在IE7中完全显示需要200秒以上,并且在Safari中显示不到一分钟。在任一浏览器中,小“网格”在5秒内显示,因此我认为它与数据量以外的任何内容无关。我可以在服务器端做些什么来加速IE7显示?告诉用户停止将头撞到墙上不是一种选择。
答案 0 :(得分:10)
为表格布局设置css属性:固定在表格上。然后IE将不必须重新计算添加的每个额外行/列的表大小,并且它将显着加速。
BTW,w3schools link有一些关于此的好信息。
table-layout 采用以下三个值之一:auto,fixed和inherit。
自动是默认设置。浏览器必须先加载整个表,然后才能计算大小并开始渲染。这取决于浏览器的渲染引擎,范围从慢到慢。
<强>固定即可。第一行定义列的宽度。因此,浏览器可以在下载时呈现内容。因此速度提高了。作为次要的注意事项,因为忽略了除顶行之外的所有宽度,所以您不必为剩余列发送宽度数据...这意味着您的页面大小可能会小一些。
<强>继承即可。基本上,从父母那里得到它的价值。
答案 1 :(得分:3)
甚至Safari“一分钟之内”似乎无法忍受。无论我哪里有什么缓慢,我都会设置一个进度条和一些关于数据的统计数据。
Kazar的分页想法可能是前进的方式,或者是Oscar Reyes建议的渐进式加载。
这个数据需要多长时间和多少行?
答案 2 :(得分:1)
我很抱歉,但是IE7只是一个旧的浏览器,因此速度不如Safari ......如果他们升级到IE8,Firefox或Chrome,他们可能会看到一些性能提升...... / p>
答案 3 :(得分:1)
也许对网格进行分页,可能会使它在两种浏览器上更具可读性和更快性?
答案 4 :(得分:1)
为什么IE7与Safari相比这么慢?
因为它们有不同的HTML引擎,它们的工作方式不同,不同的算法,不同的等等
我能在服务器端做些什么来加速IE7显示?
也许您可以尝试使用Ajax。这样,感知速度会好得多。
答案 5 :(得分:1)
由于您无论如何都是以编程方式生成此数据,因此您可以尝试使用&lt; pre&gt;标签,它将以等宽字体显示文本。这样,您可以自己快速计算单元格的宽度和高度。它看起来不会很漂亮,但它会避免任何布局时间。
如果您不想手动执行此操作,并且表中没有链接,则可以使用the elinks web browser将HTML呈现为纯文本,并将该输出放在&lt; pre&gt;中标签
elinks -dump ./localfile.html
在次要说明中,如果您还没有,则应确保在服务器端压缩数据,以减少传输时间。对于IIS, instructions to enable gzipping can be found here。 对于Apache, instructions to enable mod_gzip can be found here。对于Apache,请尝试Apache's own documentation on mod_deflate。
答案 6 :(得分:1)
这些都是很棒的建议 - 但我找到了吸烟枪!当IE呈现页面时,名为Mcshield.exe的进程将接管该计算机。由于服务器位于同一个盒子上,因此会减慢页面生成和渲染速度。现在问题是“为什么迈克菲粉碎IE而不是Safari?” - 我会研究那一个。再次感谢Stack Overflow!