我有一个网站,我想通过几个环境查看登录凭证,但同时显示一个加载gif。如何使Ajax的某些部分同步发生,而前端逻辑异步发生?
麻烦的是,如果我做了ajax同步或
async: false,
,则页面的其余部分将暂停,直到凭据进行检查。
我尝试将ajax调用切换回异步,它会过早地显示用户未登录的错误否定错误,因为它尚未完成检查所有环境。
我还尝试了一种创可贴解决方案与
setTimeout(loginCheckFunction, 600)
但是,这是任意时间,如果用户有一个缓慢的连接,将虚假的错误将持续存在。
关于如何在不等待同步Ajax完成的情况下运行某些部分的任何想法? 谢谢!
编辑2: 我使用最多的回答上述问题避开这个问题。我给出了一个非常小的setTimeout函数,用于调用基于同步ajax的登录检查的父函数的开始,在此期间,可以启动'loading'gif,并在ajax运行时同时查看。 尽管从最严格的意义上说,它不是同时运行,但浏览器只是提供了这种错觉。 对于未来的人可能会遇到类似的问题,我从setTimeout过渡到子函数,setTimeout被应用到父级函数上一级。
+1
的HTML5Rocks' [上承诺教程](http://www.html5rocks.com/en/tutorials/es6/promises/)可以是一个非常有趣的阅读,适合您的需求,如果你是愿意学习新的概念。 –
2014-09-23 20:43:48
+0
@Xan,我会看看那个,谢谢你的提示! –
2014-09-24 03:40:40
+0
这是对这个问题的重大改变。您可能需要修改标签。 –
2014-10-30 23:27:59