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

标签 jquery ajax playframework-2.0 conflict

好吧,我的问题很简单,

我的应用程序使用 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/

相关文章:

javascript - 使用 ajax 和 jQuery 提交表单

scala - Intellij Idea 和 Play Framework 中的库导入问题

java - Play 不断写入光盘?在 Amazon ec2 上导致更高的账单

javascript - 如何 "enable"jquery bootgrid 网格/表

jQuery 验证 - "Either skip these fields, or fill at least X of them"

jquery - 使用 jQuery FullCalendar 的非公历日历

javascript - 使用 AJAX 在页面加载时自动提交表单并获取 html 类型结果?

javascript - 获取 AJAX 请求并循环 JSON

playframework-2.0 - 任何用于 Play 框架的 CMS?

javascript - 如何从数据库中获取数据到javascript文件中并将其存储在数组中?