gpt4 book ai didi

jquery - 玩框架,jquery ajax调用冲突

转载 作者:行者123 更新时间:2023-12-01 04:13:53 24 4
gpt4 key购买 nike

好吧,我的问题很简单,

我的应用程序使用 Play 框架 2.1 运行,有时我需要使用 jQuery 发出多个 ajax 请求,这些请求完全独立。

类似这样的事情:

$.get('/url1', function(res){ ... });
$.get('/url2', function(res2){ ... });

在我的 Play Controller 中,我正在做:

public Result foo(){
theObject = // retrieving the object...
return ok(Json.toJson(theObject));
}

有时(并非总是如此,这就是为什么它很奇怪),服务器会返回我需要的内容。而其他时候,它在两个回调中给我相同的结果,就好像最后一个请求覆盖了第一个请求的结果。

我认为这是一个 jQuery 问题,但是当我在 Play Controller 中记录结果时,在返回它之前,它向我显示有时第一个 url 从未被调用,而第二个 url 被连续调用两次(并且反之亦然,并且随机......)。

我使用 MongoDB 作为数据库。

Play 似乎正在使用相同的线程来处理请求或类似的事情......

你对此有何看法? jQuery?玩框架?蒙戈?谁有罪?

提前致谢!

编辑:我只是尝试在 setTimeout() 回调中进行第二次调用,延迟为...0毫秒,其结果是结果并且似乎不再有冲突...但是,您会明白我无法将所有调用包装在单独的 setTimeout() 回调中......为什么这种情况在零毫秒超时后不再发生?这是闭包/javascript 上下文问题吗?

最佳答案

在我的团队中,我们遇到了同样的问题,并在 Play 问题上发现了一个非常相似的问题: https://github.com/playframework/playframework/issues/1383

该问题的解决方案到目前为止已经为我们解决了问题:

Play Actions are stateful, and must be instantiated once per request. By default, beans are > singleton in Spring. You need to configure them to be prototype.

关于jquery - 玩框架,jquery ajax调用冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com