1

私はこの 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後に表示されるため)

なぜですか?

4

1 に答える 1

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();
}
于 2013-08-11T21:59:52.323 に答える