在移动设备(至少 iPhone 4 和 5)上滚动启用 jQuery Mobile 的网站时,它几乎总是冻结几秒钟,有时甚至更长。通常它最终会崩溃,我必须从内存中删除 Safari(或 Chrome)。
我很难确定原因。我知道他们说过渡存在问题,我尝试添加.ui-page { -webkit-backface-visibility: hidden }
,但没有帮助。
我猜这可能与正在运行的一个或多个脚本有关。我的脚本文件本质上包含一组同时为桌面和移动设备运行的脚本,以及另外两组分别为桌面和移动设备运行的脚本。通用集包含在条件就绪函数中,$(document).ready
适用于桌面和$(document).on('pageinit)
移动设备。
此外,基于设备,所有脚本要么加载到桌面的页脚中,要么加载到移动设备的头部中。但是,两者的主脚本文件都加载在页脚中。否则,这些脚本将无法在手机上运行。
不确定 iOS 是否阻止滚动上的 DOM 操作与某些东西冲突。
我只想链接该网站,但专业保密等等。
我并不是要你猜测原因可能是什么,但我真的很感激使用 jQuery Mobile 开发以优化性能的一些基本原则的概述。