使用jquery通过ajax动态修改数据

时间:2010-09-28 12:44:23

标签: jquery ajax asynchronous


我正在使用jQuery.ajax()和一些特定的data。其中一个是albumid,如果用户选择不使用他的一个专辑,则在服务器端生成success。问题是,如果用户将几张照片添加到新相册中,则不会将所有照片添加到同一张相册中,而是创建多张相册,每张相册中都有一张照片。

目前有效:

  • 更新相册(使用用户已有的相册)
  • 制作新专辑
  • 发回新专辑ID

我尝试根据data: ({ 'albumid': album.val() )}事件中发回的新相册ID更新相册名称字段,认为在下一个ajax调用中,属性async: false将成为新的相册ID ,但它一直使用前一个值。

我知道可以使用{{1}}解决此问题,因为在这种情况下,每个ajax调用都会使用相册名称字段中的更新值,但它会完全冻结浏览器。

你对这个问题有什么诀窍/建议吗?


干杯,
尼古拉斯。

2 个答案:

答案 0 :(得分:0)

听起来你有竞争条件。在没有看到代码的情况下,很难确定,但是在解析代码并且在成功处理程序期间没有评估时,可能会设置一次album.val()。

您仍然可以使用异步调用,但必须连续执行。它被称为活动对象模式。设置一个包含ajax调用的数组并调用一个。在成功处理程序中,每个人都有一个触发下一个的调用。

答案 1 :(得分:0)

您应该使用新值 album.val()似乎无法使用新值重新评估。

使用jquery检索新的Album值应该很容易 的 $( “#hiddenId”)。VAL()

考虑到检索到的 id 存储在ajax请求创建的隐藏字段中。