浏览器性能的显示/可见性

3
我正在制作一个展示网站,其中有一个横向滑块,可以在各个作品之间进行滑动。假设共有100件作品,它们都是图形密集型和/或闪存对象。
同时,假设屏幕上最多只能同时显示4个作品。
它们都在一个大的div中,我使用jQuery来修改其left属性以移动该div。
在高端机器上它运行得很顺畅,但在比如netbook上它非常卡顿...甚至在较慢的浏览器上也是如此。
我的计划是找出将要可见的作品,并仅显示它们。我希望这样做可以提高性能。然而,我计划将visibility属性设置为hidden,以保留该元素的尺寸。但是,我想知道相对于隐藏作品,将display设置为none并创建占位符元素是否会更好?
还有其他方法可以提高较慢的机器/浏览器的性能吗?
1个回答

2
你不会通过仅使用"display:none;"来获得任何明显的性能提升。内容仍然会被加载。
相反,你可以尝试一些ajax。一个想法是预加载8个项目,即使你只显示4个。然后在用户点击"下一页"按钮时,屏幕滑动到已经加载的下一个4个项目,并且同时该行中的下一个4个项目将开始加载。

http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/


1
但最终,如果用户滑动整个投资组合,所有 100 个项都将被加载...除非您建议我在它们视线之外删除元素,然后使用 Ajax 重新加载?这将对服务器性能造成影响。 - Ozzy
你所获得的是更快的页面加载时间。当用户在页面上有100个项目时,滚动时会出现延迟问题。除非像你提到的那样删除早期的项目,否则无法解决这个问题。 - Steeven
它的服务器性能要求不会像你想象的那么大。这些项目将具有ID#1至#100,并且只需删除过去的四个项目即可。然而,在同一页上显示100个图形项目并不是非常推荐的。一个替代方案是显示10或20个项目,然后在用户到达末尾时显示“显示更多”按钮。 - Steeven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接