作为一名Web开发人员,我发现自己正在处理的一个常见问题是在执行其他操作之前等待某些内容加载。特别是,我经常在等待背景图像或CSS文件加载时隐藏(根据情况使用display: none;
或visibility: hidden;
)元素。JavaScript资源管理设计模式
考虑来自Last.FM的this example。他们在每张专辑封面上叠加一张半透明的PNG图片,以便它看起来像是在一个珠宝盒内。它们在加载时会让它加载,所以根据您的网速,您可能会暂时看到艺术图像(没有覆盖图)。在这种情况下,专辑艺术看起来很好,没有珠宝效果。但在类似的情况下,我发现我不希望用户看到网站的设计随着资源的增量加载而变得不合时宜。因此,在极少数情况下,我已经隐藏了用户的所有内容,直到整个套件和kaboodle已经加载。但是这往往是写出来的痛苦,并且可能迫使用户等待很长时间才能看到任何东西(除了“加载...”文本之外)。
我能想到的(和偶尔使用了)一些明显的解决方案/妥协:
使用一些内联CSS使得DOM负荷的某些部分和渲染,他们会立即有正确的尺寸/位置/等。
立即呈现网站的导航部分,以便如果用户想要使用当前页面纯粹是为了去其他地方,他们不必等待其余的加载。
首先加载像素化图像作为布局的占位符,同时延迟加载更高质量的图像作为替换。
在“加载...”阶段使用可爱的动画gif分散用户的注意力。
加载完整用户界面时显示有用的信息作为参考。 (一种近乎Gmail Inbox Preview等)
(很抱歉,如果我的问题是基本上只是提出和回答...)
尽管所有这些想法,我仍然觉得自己希望能有更好的方法做一些这些事情。所以我想我正在寻找的是一些灵感和/或解决这个问题的创造性方法,你们可能在野外看到过。
至于之前先对其进行处理图像:使用CSS为具有带动画gif(加载gif)的'background'属性的图像设置类。这可能是最无痛苦的方式。 – FK82 2010-05-15 11:30:48