我有一个简单的
Javascript功能:
makeRequest();
它做了一堆东西,并将一堆内容放在DOM中.
我打了几个电话:
makeRequest('food'); makeRequest('shopping');
然而,他们都很快地射击,他们正在踩在对方的脚趾上.最终我需要它具有的功能.
makeRequest('food'); wait.... makeRequest('shopping'); only if makeRequest('food') has finished
想要让它们一次只能执行一次?
谢谢!
解决方法
如果这些函数实际上是一个AJAX请求,那么你最好保持异步.您可以制作同步的AJAX请求,但会阻止浏览器进行响应,并导致用户体验不佳.
如果这些AJAX请求是由于依赖于彼此而要求的,那么您应该调查您的功能,以查看它是否提供回调机制.
makeRequest('food',function() { // called when food request is done makeRequest('shopping'); });
使用jQuery,它看起来像这样
$.get("/food",function(food) { // do something with food $.get("/shopping",function(shopping) { // do something with shopping }); });