javascript - 在 Phonegap 应用程序中,如何指示正在向服务器发出请求/响应?

标签 javascript html jquery cordova

考虑一个标准的 HTML 应用程序,包装在 Phonegap 中,使用正常的“单击”或“触摸”事件向服务器发出请求 - 偶尔将表单数据 POST 或 GET 到服务器 - 并且 WebKit 客户端等待响应然后渲染它。

当这些往返过程中出现哪怕是轻微的延迟时(例如,甚至低至 1/4-2 秒),用户会感到迷失方向,因为在他们单击和开始呈现响应之间似乎“没有发生任何事情” .

Phonegap 是否有处理短响应时间和/或长响应时间的标准做法?我尝试过将所有标准 HREF 单击更改为 AJAX 调用,其中 AJAX 调用接收一小段 HTML 片段,然后 JavaScript 将其附加到页面上的现有 DIV。在延迟期间,我可以只显示“正在加载”指示器。

这种方法不可避免地会对页面上的 JavaScript 造成严重破坏,很多时候会使 future 的点击完全不起作用。

我很好奇这方面的标准方法是什么。这似乎是一个非常常见的用例。

最佳答案

虽然本身没有“标准做法”,但许多应用程序(包括 native 应用程序)使用阻塞“旋转器”来让用户知道某些内容正在加载,并防止在从“页面”获取数据时与“页面”进行交互服务器出现。

像 jQuery Mobile 这样的框架内置了此功能(尽管我当然不建议您使用 jQuery Mobile)。

我个人在我的应用程序中使用 jQuery 插件:http://malsup.com/jquery/block/

如果您尚未使用 jQuery,您当然不想只是为了获取 blockUI 插件而开始,因此您可能需要设计自己的插件。您真正需要的是一个具有绝对定位的大 z-index 的全屏 div,以便在获取数据时阻止交互。在该 div 中,您可以放置​​一个旋转器或一条消息,指示正在发生事件,并在获取完成后将其再次拿走。

关于javascript - 在 Phonegap 应用程序中,如何指示正在向服务器发出请求/响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11057784/

相关文章:

asp.net - Javascript 采取脚本服务器端

javascript - 防止浏览器加载拖放文件

javascript - JS : Working with Sliders

javascript - 如果子div为空则隐藏父div

jquery - Chrome 自动完成文本输入可防止触发 keydown 事件(jquery)

javascript - 如何使用getSelection?

javascript - JS逆向有点值(value)

javascript - 为 div 状态设置 cookie (javascript)

javascript - Slick slider 中的两位数字而不是点

javascript - Air Datepicker - 用于突出显示的动态最小和最大日期