考虑一个标准的HTML应用程序,包含在Phonegap中,通过正常的“点击”或“触摸”事件向服务器发送请求 - 偶尔POST'或GET'表单数据到服务器 - 和WebKit客户端等待响应,然后呈现它。
当这些往返行程中甚至有轻微的延迟时(例如,即使低至1 / 4-2s),用户也会迷失方向,在点击和响应开始呈现之间似乎“没有任何事情发生”
Phonegap是否有标准做法来处理短暂和/或长时间的响应?我已经尝试将所有标准HREF点击更改为AJAX调用,其中AJAX调用接收一个小的HTML片段,JavaScript然后只是附加到页面上的现有DIV。在延迟期间,我只能显示一个“加载”指示符。
这种方法不可避免地导致在页面上使用Javascript造成严重破坏,很多时候使得未来的点击完全失效。
我很好奇标准方法是什么。这似乎是一个非常常见的用例。
答案 0 :(得分:2)
虽然本身没有“标准练习”,但许多应用程序(包括本地应用程序)使用阻塞“微调器”让用户知道正在加载某些内容并阻止与“页面”进行交互。服务器发生。
像jQuery Mobile这样的框架内置了这个功能(虽然我当然不建议你使用jQuery Mobile)。
我个人在我的应用中使用jQuery插件:http://malsup.com/jquery/block/
如果你还没有使用jQuery,你当然不想只是为了获得blockUI插件,所以你可能想要设计自己的。所有你真正需要的是一个全屏div,它有一个绝对定位的大z-index,以便在获取数据时阻止交互。在该div中,您可以放置一个微调器或一条消息,指示正在进行活动,并在提取完成后再将其取出。