当前位置: 首页 > 面试题库 >

如果jQuery.ajax等待响应时间足够长,则运行函数

吕子真
2023-03-14
问题内容

我有一个简单地发出一些ajax请求的jQuery代码。

大多数情况下,获得响应所需的时间不到一秒钟,因此我可以将结果显示给用户。

但是有时候(大约需要5%的重载)需要几秒钟的时间(我可以接受,服务器有点忙)。

我想在超过2秒的时间内显示“请稍候”文本。但是不到2秒就不会出现(因此用户不会因快速显示/隐藏消息而感到困惑)。

如何以最有效,最简单的方式制作它?

当前的jQuery代码:

jQuery.ajax({
    url: "loadData.php",
    dataType: 'json',
    type: 'GET',
    success: function(result){
        showResultsToUser(result);
    }
});

问题答案:

像这样:

var cancelMe = setTimeout(function() {
   $('#loading').show(); // assuming your loading element has the id "loading"
}, 2000); // show loading element in 2 seconds

jQuery.ajax({
    url: "loadData.php",
    dataType: 'json',
    type: 'GET',
    success: function(result){
        showResultsToUser(result);
        clearTimeout(cancelMe); // don't run if it hasn't run yet
        $('#loading').hide(); // hide the loading element if it's shown
    }
});


 类似资料:
  • 我正在尝试编写一个依赖于selenium中最后一个事件的事件序列。首先点击登录,加载一个新的页面,然后点击页面上的滚动框,然后点击滚动框内的按钮,直到滚动框被点击才会被加载。 我试图停止使用time.sleep(x),因为我读到这是不好的做法,我试图了解更多关于硒如何工作的信息。 我得到的不起作用的代码是 我能让它工作的唯一方法是在之前放一个。根据我的理解,网络驱动程序的等待和预期条件应该会否定我

  • 我需要一些关于以下postgres功能的帮助 我有下表和列: 我最初在中有几个数组,然后运行一个查询(实际上是一组3个查询),选择数组,附加它们,然后将附加的数组插入表中。 我需要循环这个插入查询,直到其中一个数组()达到预定义的大小,比如长度50。 我基本上需要写一些 但是我找不到正确的语法来写这个 我http://www.postgresql.org/docs/8.4/static/plpgs

  • 我不想告诉每个布局都适合容器,而是想调整每个容器的大小,以完美地适应它的子画布。换句话说,我需要一种方法来询问Cytoscape画布的每个实例,“0缩放时您的宽度和高度是多少”,或者“在每个方向上需要多少像素才能完全绘制”,然后适当地调整每个容器的大小。 Cytoscape确实提供了获取画布的和的方法,但它们最终是实际的尺寸(可能不适合容器),而不是“想要的”/需要的尺寸。 我突然想到,我可以想出

  • 问题内容: 我是python的n00b用户,并且正在查找执行以下操作的代码段/示例: 显示类似“按任意键进行配置或等待X秒继续”的消息 例如,等待5秒钟,然后继续执行,或者如果按下某个键,则输入configure()子例程。 感谢您的帮助! 伊万·詹森斯(Yvan Janssens) 问题答案: 如果您使用的是Unix / Linux,那么select模块将为您提供帮助。 如果您使用的是Windo

  • 我正在使用TestNG框架编写一个selenium脚本。我已经将显式等待定义为在selenium抛出NoSuchElement异常之前的20秒。但脚本在执行过程中没有等待20秒,并在41毫秒内抛出异常。我希望这个脚本在抛出任何异常之前等待(使用显式的wait only)或搜索web元素20秒。 下面是脚本,后面是执行结果。

  • 问题内容: 我正在使用ProcessBuilder类和Process类从Java执行一个.exe文件。解释我在做什么: 我只是想知道,“ waitFor()”等待了多长时间?是等待直到执行我的.exe,还是等到执行完成? 我的.exe是编译好的AutoIt脚本。这意味着,可能需要一些时间才能完成诸如鼠标移动之类的交互。因此,我需要知道在调用.exe之后我的Java代码执行是否继续进行,或者它是否真