Safari 6+和移动浏览器上非常高的网页问题

时间:2014-03-28 12:42:09

标签: html css performance mobile webkit

非常高的网页

我的网络应用程序显示"文件"作为垂直的图像序列。

每张图片代表文档的一页。

图像在启动时加载,而是延迟加载:

  • 对于每个页面,相同大小的占位符(具有灰色背景和指定大小的空div)在启动时放入DOM(在文档就绪时,使用JavaScript例程);

    < / LI>
  • 当页面进入视口(并在内部停留至少0.25秒)时,它的图像是通过占位符从服务器加载的;

基本上我已经实现了大多数桌面读者的基本行为,如预览或Acrobat Reader:用户浏览文档向上/向下滚动窗口内容。

有些文档有很多页面(300或更多),每页大约850px高:因为300多个灰色占位符被注入DOM ...

网页可能会变成几千像素

当我开始我的项目(大约一年前)时,认为这是浏览器的边界条件:网页不应该是240.000像素高!所以我做了测试(我最初的目标是桌面浏览器)。

令人惊讶 very-tall-web-page 根本不是问题!所有浏览器(包括IE8)都没有受到影响。事实上,JavaScript很轻,DOM包含了合理数量的节点,而且 - 尽管是&#34;逻辑&#34;页面大小很大 - 浏览器很聪明,只能渲染需要在屏幕上显示的内容。

Safari 6和Safari 7

very-tall-web-page成了问题。

浏览器似乎试图在 ram 中呈现整个网页(!):这涉及到使用大量的cpu,大量的ram和大量的时间(浏览器响应性差) ,滚动和调整大小经常挂起。)

如果我删除了灰色占位符,我添加了固定的背景图案,所有内容......只留下一个长而白的空网页,没有任何变化。

如果我触发图形加速-webkit-transform: translatez(0);应用到body,Safari会在窗口调整大小和滚动时再次响应(只要我留在网页的最顶端)页)。但是,如果我下到中间/底部,那么滚动会再次挂起,页面需要几秒钟才能更新。

至少,重新绘制页面后,调整大小仍会保持响应。

移动浏览器

从一开始very-tall-web-page就是iPad和移动设备上的一个问题。

移动版Safari内存不足,只有10-15页图像文件崩溃。

触发图形加速部分解决了问题。

没有崩溃,但如果我向下滚动太多,它会挂起一段时间而无法渲染页面(它会保持白色)。

问题

我可以在Safari 6/7上使very-tall-web-page工作吗?

我有什么技巧可以让它在移动浏览器上运行吗?

very-tall-web-page即使针对桌面浏览器,也应该避免这种情况吗?

- 编辑 -

问题已在版本 7.1

上的Safari(桌面)上修复

0 个答案:

没有答案