0

我打算有一个忙碌的等待微调器,如这篇文章所示: 如何在 jQuery 中显示加载微调器?- 因为它是最干净和最容易实现的:

 $('#loadingDiv')
        .hide()  // hide it initially
        .ajaxStart(function() {
            $(this).show();
        })
        .ajaxStop(function() {
            $(this).hide();
        })
    ;

并将其与来自http://www.ajaxload.info/的动画结合起来

我的页面中有多个“视图”,即可以使用相应的 ajax 调用更新/修改页面的不同部分。

可以这么说,我想将其“定位”在#loadingDiv靠近“行动”的位置。我该怎么做呢?

想到的几件事:

  1. 在整个地方都有多个 div 并将它们隐藏并根据相应的操作按元素显示它们 - 看起来很幼稚和浪费
  2. 有一个空<span></span>来“持有” #loadingDiv- 当在那段时间内发生某些事情时显示它。虽然我不知道该怎么做...
  3. 还有什么??

基本上如何最好地处理位置繁忙的等待/信令,而不是拥有一个全局的?还是首选单一全局选项,即,要在每个活动的页面顶部/中心隐藏“固定”div?

只是想知道你们中的大多数人使用/更喜欢哪个选项来解决类似的问题,以及你建议我如何去做......

4

1 回答 1

1

有一些事情需要考虑:

如果用户在请求加载时与页面的其他部分交互,会导致问题吗?

在这种情况下,使用像透明覆盖这样的灯箱来阻止整个 UI。

这些动作是否与应用程序的其余部分无关?

使用本地的定位微调器。如果是按钮,请更改按钮的内容,例如。使用微调器“保存行”到“保存...”。

如果请求很重要但你想让用户乱七八糟,并且 GUI 很复杂

您只能覆盖部分屏幕。http://sfiddle.net/Lv9y5/39/

本地更新,非阻塞方式

使用jQuery.position从头开始​​创建 Spinner 对象。它应该有一个 .show(node) 和 .hide() 方法,也许还有一个 .setMessage(txt); 传递给 show 方法的 DOM 引用是用户单击的元素。通过参考,您可以使用 jQuery .position() 来确定加载 div 的绝对位置。加载 div 应该放在 BODY 元素之后。

于 2011-08-07T10:53:13.660 回答