Панель загрузки Ajax работает на FF, но не работает на Chrome. Есть идеи, почему?

Я использую эту панель загрузки ajax http://thisiscontext.com/tools/jQuery-showLoading

И у меня есть следующий код:

jQuery('#map').showLoading(); 
var request = OpenLayers.Request.POST({
    url: "service.asmx/DeleteStopPoint",
    data: "{'TripId':'" + currentTrip + "','PointId':'" + feature.attributes.PointId + "'}",
    async: false,
    headers: { "Content-Type": "application/json; charset=utf-8" },
    callback: refreshMap
}); 
jQuery('#map').hideLoading();

что происходит, так это то, что в FF я вижу, что панель загрузки появляется до того, как запрос будет сделан, и скрывается после его завершения ... но в хроме этого не происходит. похоже, что панель появляется и тут же исчезает (потому что, если я закомментирую функцию hideLoading, она появится ПОСЛЕ POST)

Любая идея, почему?


person Alophind    schedule 11.08.2013    source источник
comment
Я бы посоветовал не использовать sjax (неасинхронный ajax)   -  person Musa    schedule 12.08.2013
comment
Что мне делать, чем?   -  person Alophind    schedule 12.08.2013


Ответы (1)


Вместо использования синхронного запроса выполните обычный (асинхронный) запрос и скройте карту в обратном вызове ajax. Также не создавайте JSON вручную, то, что у вас есть, на самом деле не является действительным JSON, вместо этого вы должны использовать JSON.stringify.

jQuery('#map').showLoading(); 
var request = OpenLayers.Request.POST({
    url: "service.asmx/DeleteStopPoint",
    data: JSON.stringify({ TripId: currentTrip, PointId: feature.attributes.PointId }),
/*    async: false, <-- don't do that*/
    headers: { "Content-Type": "application/json; charset=utf-8" },
    callback: refreshMap
}); 
function refreshMap(some, arguments0{
    ...
    jQuery('#map').hideLoading();
}
person Musa    schedule 11.08.2013