我正在使用jQuery.ajax()
和一些特定的data
。其中一个是albumid
,如果用户选择不使用他的一个专辑,则在服务器端生成success
。问题是,如果用户将几张照片添加到新相册中,则不会将所有照片添加到同一张相册中,而是创建多张相册,每张相册中都有一张照片。
目前有效:
我尝试根据data: ({ 'albumid': album.val() )}
事件中发回的新相册ID更新相册名称字段,认为在下一个ajax调用中,属性async: false
将成为新的相册ID ,但它一直使用前一个值。
我知道可以使用{{1}}解决此问题,因为在这种情况下,每个ajax调用都会使用相册名称字段中的更新值,但它会完全冻结浏览器。
你对这个问题有什么诀窍/建议吗?
干杯,
尼古拉斯。
答案 0 :(得分:0)
听起来你有竞争条件。在没有看到代码的情况下,很难确定,但是在解析代码并且在成功处理程序期间没有评估时,可能会设置一次album.val()。
您仍然可以使用异步调用,但必须连续执行。它被称为活动对象模式。设置一个包含ajax调用的数组并调用一个。在成功处理程序中,每个人都有一个触发下一个的调用。
答案 1 :(得分:0)
您应该使用新值 album.val()似乎无法使用新值重新评估。
使用jquery检索新的Album值应该很容易 的 $( “#hiddenId”)。VAL()强>
考虑到检索到的 id 存储在ajax请求创建的隐藏字段中。