好吧,我的問題很簡單,遊戲框架,jQuery的AJAX調用衝突
我的應用程序與遊戲框架2.1運行,有時我需要使用jQuery幾個Ajax請求,這是完全獨立。
事情是這樣的:
$.get('/url1', function(res){ ... });
$.get('/url2', function(res2){ ... });
在我的播放器,我只是在做:
public Result foo(){
theObject = // retrieving the object...
return ok(Json.toJson(theObject));
}
什麼情況是,有時候(不總是這樣,這就是爲什麼它是怪異),服務器返回我需要的東西。而其他時候,它給了我在兩個回調中的相同結果,就好像最後一個請求覆蓋了第一個結果一樣。
我認爲這是一個jQuery問題,但是當我在我的Play控制器中記錄結果之前,在返回它之前,它顯示我有時,第一個url永遠不會被調用,第二個連續調用兩次反之亦然,隨機......)。
我正在使用MongoDB作爲數據庫。
看來,玩的是使用相同的線程來處理請求或類似的東西...
你怎麼看呢? jQuery?玩框架? Mongo?誰有罪?
在此先感謝!
編輯: 我只是試圖做的第二個呼叫與... 0毫秒的延遲的setTimeout()回調,而這樣做的結果是,結果是良好而且似乎沒有衝突了... 但是,你會明白,我不能把我所有的電話都包在一個單獨的setTimeout()回調中...... 爲什麼在零毫秒超時時不會再發生這種情況?這是一個封閉/ JavaScript的上下文問題?
如果您在Ajax調用中設置了「async:false」會發生什麼情況,使您的請求同步? – Aerus
該請求正常工作。我沒有找到解決我的問題的辦法,似乎是春天的原因。我在Play框架中使用Spring bean,就像在Guillaume Bort的github頁面上說的那樣,他解釋瞭如何做到這一點。 看來,當我禁用此功能,並使用靜態控制器,沒有春天功能,一切正常。當我將「複合操作」與註釋(用於身份驗證目的)和Bean控制器相結合時,問題就出現了。就那麼簡單。但我沒有找到任何解決方案,所以我們(我和我的團隊)現在只使用SpringMVC ... – TheCypher