iBooks预加载页面会干扰动画

时间:2013-05-17 14:02:07

标签: ibooks

我的电子书由setTimeout驱动动画。 (我在使用时使用requestAnimationFrame,而不是在运行iOS 5的旧版iPad上使用它)。本书由大约100个单独的XHTML文件组成,以确保分页符恰好发生在应有的位置,这在iBooks中是一个不确定的命题。

在打开书之后,动画非常缓慢(例如每步一秒,而不是50毫秒),但是在将书打开一段时间后(一分钟左右?),动画以预期的速度奔跑。

我找到的原因:iBooks显然是预装了书中的所有页面(我想是为了获取页码,或加快翻页)。预加载似乎干扰了我的动画 - 窃取setTimeout插槽,就像它一样。

我原本以为问题可能是在加载时为每个文档设置动画所需的时间,但是对它们进行了计时,发现每页只有几毫秒。问题可能是在100多个页面中的每个页面上都有一个半大的脚本(100K),我想iBooks会在预加载每个页面时反复解析。

我已经考虑过在查看每个页面时动态包含大脚本的选项,但是我们一直在想办法告诉它是什么时候这样做的。我们在Safari中没有PageVisibility API,并且focus事件不会在初始页面加载时触发,因此如何判断页面实际被查看的时间,而不是iBooks在后台隐藏预先加载?

我的下一步尝试是将单个XHTML页面的数量减少到1或者几个,并利用我page-break-*及其同类的机会来处理分页。

我需要的是一种方法(1)告诉iBooks 不预先加载书中的其他页面或(2)给我的setTimeout请求优先级< / strong>超过iBooks为预加载页面排队的那些或(3)知道何时显示页面,所以我可以在那个时间点注入脚本。

另请参阅epub 3, how to prevent pages from running in background ? (iBooks / Readium)FInding out when page is being viewed in EPUB FXL via Javascript

0 个答案:

没有答案