Javascript Performant CSS3全屏滑块

Javascript Performant CSS3全屏滑块,javascript,css,client-side,Javascript,Css,Client Side,在实现lightbox或图像滑块时,我通常的方法是将包含幻灯片的元素嵌套在具有溢出:隐藏的固定宽度和高度元素中,如下所示 通过设置边距动画,我们可以在可见区域流畅地移动幻灯片 我最近一直在实现这样一个滑块,它使用全屏幻灯片并以视网膜显示iPad为目标。这些幻灯片不是图像,而是不同的HTML块,有些带有高分辨率的嵌入式媒体。设备上的性能可以接受,但肯定可以改进 我的问题是,在尝试优化此类web应用的客户端性能时,应该考虑哪些因素?例如,我知道CSS3转换被认为是硬件加速的结果 WebKit是否有

在实现lightbox或图像滑块时,我通常的方法是将包含幻灯片的元素嵌套在具有
溢出:隐藏的固定宽度和高度元素中,如下所示

通过设置边距动画,我们可以在可见区域流畅地移动幻灯片

我最近一直在实现这样一个滑块,它使用全屏幻灯片并以视网膜显示iPad为目标。这些幻灯片不是图像,而是不同的HTML块,有些带有高分辨率的嵌入式媒体。设备上的性能可以接受,但肯定可以改进

我的问题是,在尝试优化此类web应用的客户端性能时,应该考虑哪些因素?例如,我知道CSS3转换被认为是硬件加速的结果

WebKit是否有更令人满意的DOM布局方式

“延迟加载”不可见页面可能会产生真正的影响吗?如果是这样的话,是否值得主动删除已经被用来控制DOM大小的旧元素

每个幻灯片当前都是异步加载的
onLoad
。一次向浏览器提供所有HTML是否会影响性能(除了保存一些HTTP请求)


如果你能想出任何窍门,我将不胜感激

好的,这里有几件事要记住

  • 避免重画。如果可以使用变换和变换,请执行以下操作。因为浏览器知道您在做什么,所以它可以避免在不需要时重新绘制。几年前我写了这个:,这解释了如何做到这一点。使用jQuery动画是一种流行的选择。我在这里写了一个非常难看的方法:,但是现在事情有点进展了,你可能可以想一想如何写得更好。例如,jQuery1.8抽象了供应商前缀,避免了我的许多难看代码

  • 在可能的情况下使用3D变换,您可以通过添加一个
    变换:translate3d(0,0,0)在移动位上。这迫使它进入Webkit中的一个新层,这对某些版本的Webkit有帮助

  • 关于内存使用和DOM对象,请使用Chrome或Safari中的时间线检查器使用滑块记录自己,然后检查发生了什么。如果您可以访问iOS 6.0,则可以连接到Safari中的设备,直接在设备上使用inspector

  • 这是一段关于这类事情的视频,值得一看。如果你无法访问该页面,我相信你可以通过iTunes U获取视频,但这可能只是因为我也是一名开发人员。。。无论哪种方式,视频的标题都是“优化UIWebView中的Web内容和iOS上的网站”


  • 简而言之,测量、记录、分析和实验

    好的,这里有几件事要记住

  • 避免重画。如果可以使用变换和变换,请执行以下操作。因为浏览器知道您在做什么,所以它可以避免在不需要时重新绘制。几年前我写了这个:,这解释了如何做到这一点。使用jQuery动画是一种流行的选择。我在这里写了一个非常难看的方法:,但是现在事情有点进展了,你可能可以想一想如何写得更好。例如,jQuery1.8抽象了供应商前缀,避免了我的许多难看代码

  • 在可能的情况下使用3D变换,您可以通过添加一个
    变换:translate3d(0,0,0)在移动位上。这迫使它进入Webkit中的一个新层,这对某些版本的Webkit有帮助

  • 关于内存使用和DOM对象,请使用Chrome或Safari中的时间线检查器使用滑块记录自己,然后检查发生了什么。如果您可以访问iOS 6.0,则可以连接到Safari中的设备,直接在设备上使用inspector

  • 这是一段关于这类事情的视频,值得一看。如果你无法访问该页面,我相信你可以通过iTunes U获取视频,但这可能只是因为我也是一名开发人员。。。无论哪种方式,视频的标题都是“优化UIWebView中的Web内容和iOS上的网站”


  • 简而言之,测量、记录、分析和实验

    性能不是一个词。法语中“高效”一词的意思是“高效”,似乎受到了开发人员的欢迎,因为没有一个真正适合的英语单词。它是法语中的“高效”一词,似乎受到了开发者的欢迎,因为没有一个真正适合的英语单词。谢谢Rich,这里有一些有趣的东西。谢谢Rich,那里有一些有趣的东西。