背景:我有一个 jQuery 移动应用程序(单个 .htm,多 jqm 页面),其中一个页面包含一个列表视图,其中包含相当多的列表项(例如 300-500 个)。我在这里测试性能的界限,所以目前我的自定义“分页”将使用 CSS 一次隐藏除 25 个项目之外的所有项目。该应用程序使用 PhoneGap 部署到设备。
所以,对于我的问题。
我发现,当我使用下面的代码时,单击列表中的项目时,导航到列表项链接到的页面在设备上非常缓慢。这会处理点击,从列表项中提取一个 id 并将其存储,然后允许点击执行页面导航:
$('#largeListView').on('vclick', 'a[href="#subView"]', function (e) {
theSubView.setId($(this).data("id"));
});
但是,下面的代码要快得多。它还存储 id,但随后阻止单击导致导航并手动更改页面:
$('#largeListView').on('vclick', 'a[href="#subView"]', function (e) {
theSubView.setId($(this).data("id"));
e.preventDefault();
$.mobile.changePage('#subView');
});
更快的解决方案的唯一缺点(据我所知)是该项目不显示任何点击发生的 UI 反馈。
有谁知道为什么我在这里获得了巨大的速度提升,以及是否有办法加快选项 1 的速度?
我不喜欢以这种方式规避设计,如果我能获得良好的性能,我更愿意使用选项 1。
谢谢!
克里斯。