positionService.call(new PositionCallback(){ onPositionUpdate(Position position)
{
this.position=position;
if (isLoaded){
refreshDataWithPosition();
}
});
dataService.call(new DataCallback(){ onDataUpdate(Data data)
{
//does this need synchronization?
updateTable(data,position);
isLoaded=true;
});
我上面有以下代碼。它同時加載GPS地理定位位置和所有數據。如果GPS數據更新第一個updateTable將更新考慮到這一點。如果GPS數據第二次更新,它將調用refreshDataWithPosition刷新其內容。我想更新表格,無論是否有位置以獲得更快速響應的體驗。GWT單線程回調
GWT異步回調如何在單線程(或可能是多線程JavaScript引擎)下工作? 這裏的危險是在updateTable完成後isLoaded被設置爲true之前調用位置回調。在這種情況下,表格將不會刷新位置數據。
它不是真的是我想要但。我想首先加載或不加載位置以獲得更好的響應。如果職位稍後出現,我想刷新數據。 – 2013-04-04 21:20:44
也根據這個http://stackoverflow.com/questions/9999056/are-event-handlers-guaranteed-to-complete-before-ajax-callbacks-are-誘惑ajax回調將永遠不會中斷的JS代碼,所以同步不應該成爲單線程JS引擎中的一個問題 – 2013-04-04 21:29:47
「我想首先加載或不加載位置以獲得更好的響應性」 - 所以在source2callback中調用updateTable,然後在加入中; 「ajax回調將永遠不會中斷JS代碼」 - 這就是我所說的。 – ArtemGr 2013-04-04 21:37:46