0
Button1的管理多个异步功能
<button>button 1</button>
<button>button 2</button>
<button>button 3</button>
<button>button 4</button>
比方说,我有一个页面上的多个按钮。当你点击它们时,它们变成红色。这个转换需要一段时间(5-30秒)。
我实现了一个Ajax调用,当点击一个按钮时开始转换,它完成后将该按钮变为红色。只有服务器响应后,该按钮才会变为红色。
我想实现一种机制来确保一次只处理一个转换。也就是说,如果用户单击多个按钮,则在给定时间只有一个正在处理的Ajax调用。
我在考虑实现一个队列机制,当用户点击一个按钮并递归运行每个按钮时,在数组中推送ajax调用。但我不知道如何动态做到这一点,也就是说,如何告诉我的功能:'嘿用户在队列中添加一个新项目',请继续。
我必须连接我的ajax调用数组和我的函数,每次只执行一次ajax调用。我的函数应该监听数组中发生的任何事件。
还有其他想法吗?
谢谢!
当你说只有一个Ajax调用在同一时间被处理,这是否意味着只有一个请求被发送? – nem035
Ajax始终是aysnc,但您可以做的是中止以前的请求并启动其他请求。作为参考,你可以看看http://stackoverflow.com/questions/19244341/abort-previous-ajax-request-on-new-request – Sumit
@ nem035是的,只是在请求发送一次。例如,如果用户点击button1和button2,我的神奇功能应该在处理button2的ajax调用之前等待button1的答案。 –