1

我已经用 jquery mobile 组合了一个简单的 webapp。当用户访问主页时,他们会看到一个按钮列表,他们可以单击这些按钮来确定去哪里。

这些按钮是从对 php 脚本的 ajax 调用生成的,该脚本调用数据库以确定哪些选项可用。

有几个页面,每个页面在 on 时都会进行自己的 ajax 调用pageshow。每个按钮都是一个链接,data-role="button"因此它们看起来不错。

但是我面临的一个问题是,在页面更改之间,有一个轻微的延迟,导致按钮在页面更改之前变得丑陋。

这在速度较慢(或繁忙)的计算机上更为明显。如果设置页面需要很长时间(可能从数据库返回大量数据),也会出现延迟,并且按钮会变丑。

这可能是什么原因?

4

1 回答 1

1

有(至少)三种方法来处理这个问题:

  • 在显示页面之前添加内容:通过将动态内容的添加绑定到在pagecreatejquery mobile 增强页面之前触发的事件。显然,如果您的调用是异步的,您可能没有机会在页面增强之前检索和插入动态内容。
  • 在元素显示之前隐藏元素:这就是我的做法(在带有 jqm 列表的列表中,不必使用按钮)。我使用归结为的 css 类创建元素display:none;,并在手动调用增强功能后删除该类
  • 一个接一个地增强按钮:为了不必等待整个元素都被插入,它们开始看起来不错,您可以.button()在插入后调用每个单独的元素(如果您将它们插入 DOM 之一在另一个之后)。对于每个元素,您可能仍然会从丑陋到漂亮地轻微“眨眼”,但这应该几乎不会引起注意。
于 2012-11-13T13:44:01.003 回答