Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery块用户界面-更新“;请稍候……”;带“的信息;仍在工作……”;在X时间之后_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript jQuery块用户界面-更新“;请稍候……”;带“的信息;仍在工作……”;在X时间之后

Javascript jQuery块用户界面-更新“;请稍候……”;带“的信息;仍在工作……”;在X时间之后,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我在文档中找不到关于如何为长时间运行的进程更新块UI文本的信息。例如,根据选择的选项保存对表单的更改将触发各种过程,其中一些过程可能需要一些时间。我希望最初的block ui消息说“正在处理…”,然后说15秒后,让它说“仍在工作…”,这样用户就不会认为页面没有时间了。我已经在gmail中看到了这一点,并希望复制这一功能。对此有什么指导吗?一些可能对你有帮助的东西是。它允许您在N毫秒后运行一些代码。有一个匹配函数,它将从队列中“删除”一个setTimeout处理程序 使用这些工具,您可以按如下方式

我在文档中找不到关于如何为长时间运行的进程更新块UI文本的信息。例如,根据选择的选项保存对表单的更改将触发各种过程,其中一些过程可能需要一些时间。我希望最初的block ui消息说“正在处理…”,然后说15秒后,让它说“仍在工作…”,这样用户就不会认为页面没有时间了。我已经在gmail中看到了这一点,并希望复制这一功能。对此有什么指导吗?

一些可能对你有帮助的东西是。它允许您在N毫秒后运行一些代码。有一个匹配函数,它将从队列中“删除”一个
setTimeout
处理程序

使用这些工具,您可以按如下方式构造代码:

var timeoutID;

function startBlocking() {
  // do your stuff...
  $.blockUI({ message: "Processing..." });
  timeoutID = setTimeout(function() {
    $.blockUI({ message: "Still working..." });
  }, 15000);
}

function stopBlocking() {
  // This is called whenever your processing is done
  clearTimeout(timeoutID);
}

这样,仅当流程尚未完成时,消息才会在15秒后更改。当它完成时,它有效地阻止了
$.blockUI({message:“仍在工作…”})
的运行。

你试过了吗?我试过了,这确实有效,但我不知道如何确定经过了多少时间。我做的插入点几乎立即触发。我记得在prototype中有一个ajax更新程序,其行为类似于“心跳”,但我不知道在jQuery或Javascript中有类似的情况;也许我没有使用正确的搜索词,我没有意识到我可以像那样利用setTimeout。现在添加逻辑。使用setInterval()也是一种可能的解决方案吗?@HPWD您可以使用
setInterval
,但通常使用
setTimeout
是一个更好的主意,特别是如果您不想让它重复一次又一次的话(但即使这样,使用“嵌套的”
setTimeout
s也是一个非常好的选择)。