如何使用warning message实现类似Gmail的“这需要太长时间”jQuery Ajax API?
对于那些从未在gmail上看过此消息的人,当“登录”过程需要很长时间才能完成时会出现,然后会建议一些解决方案。
我在我的网站上使用jQuery Ajax,我想在页面加载非常慢时警告用户然后建议一些解决方案(例如刷新页面或帮助页面的链接)。
答案 0 :(得分:14)
我建议像这种安排一样简单:
function tooLong() {
// What should we do when something's taking too long? Perhaps show a `<div>` with some instructions?
$("#this-is-taking-too-long").show();
}
// Then, when you're about to perform an action:
function performSomeAction() {
var timer = setTimeout(tooLong, 10000);
$.get('/foo/bar.php', {}, function() {
// Success!
clearTimeout(timer);
});
}
答案 1 :(得分:2)
为什么不使用内置的jQuery ajax 'timeout' option。无论如何,使用它是一个很好的做法,以防你的ajax调用出现问题。或者,你可以重新发明轮子;)
编辑:呃,我想你想把它与错误函数结合起来。
答案 2 :(得分:2)
我写的jQuery加载插件将此作为默认选项。这是演示:
http://jquery-values.googlecode.com/svn/other/loading/jquery.loading.htm