我正在尝试模拟这样的事情:
- 单击按钮会显示一个模式弹出窗口,上面写着“正在加载东西”,并带有覆盖
- 与此同时,我用 jQuery 执行了一个 ajax 调用,并让一个 2 秒的计时器启动
- 一旦我从 ajax 调用得到响应并且我的计时器结束,我需要隐藏模式弹出窗口。
我的 ajax 请求可能会在 2 秒内返回,但我需要用户阅读弹出窗口中的消息,并且可能会在 2 秒后返回(但我需要它返回以继续)。
我试图调查 $.when 但我找不到正确设置“计时器”部分的方法。
谢谢你的帮助!
我正在尝试模拟这样的事情:
我的 ajax 请求可能会在 2 秒内返回,但我需要用户阅读弹出窗口中的消息,并且可能会在 2 秒后返回(但我需要它返回以继续)。
我试图调查 $.when 但我找不到正确设置“计时器”部分的方法。
谢谢你的帮助!
如果您设置为 using $.when
,您可以创建一个 Deferred ,它会在x
几毫秒后解析;
function timedDeferred(n) {
var deferred = jQuery.Deferred();
setTimeout(function () {
deferred.resolve();
}, n);
return deferred.promise();
}
...然后您可以使用$.when
;
$.when($.ajax(), timedDeferred(2000)).then(function (ajax) {
// "ajax" is an array of the arguments that $.ajax() provides; see
// the bottom of http://api.jquery.com/jQuery.when/
});