Description
Description is requiredSometimes when navigatiing or panning, the AjaxMapControl will freezing, and the WaitCursor is beeing displayed.
SharpMap.UI AjaxMap.js do the following change:
/* Processes the response from the callback -
The function sets up an onload-event for when the image should start fading if dofade==1 */
function SharpMap_GetCallbackResponse(url,ob j,dofade)
{
if(url=='') return;
if(dofade==1)
{
var imgdnew = obj.HiddenMap();
imgdnew.src = url;
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } }
CHANGE THIS LINE>>>>>>> imgdnew.onerror = function(event) { SharpMap_BeginRefreshMap(obj,1); imgdnew.onerror=''; }
}
else
{
obj.VisibleMap().src = url;
obj.container.style.cursor = 'auto';
obj.VisibleMap().onload = function(){ obj.mapReady=1; VisibleMap().onload='';}
CHANGE THIS LINE>>>>>>> obj.VisibleMap().onerror = function(event) { SharpMap_BeginRefreshMap(obj,1); VisibleMap().onerror=''; }
}
SharpMap.UI AjaxMap.js do the following change:
/* Processes the response from the callback -
The function sets up an onload-event for when the image should start fading if dofade==1 */
function SharpMap_GetCallbackResponse(url,ob
{
if(url=='') return;
if(dofade==1)
{
var imgdnew = obj.HiddenMap();
imgdnew.src = url;
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } }
CHANGE THIS LINE>>>>>>> imgdnew.onerror = function(event) { SharpMap_BeginRefreshMap(obj,1); imgdnew.onerror=''; }
}
else
{
obj.VisibleMap().src = url;
obj.container.style.cursor = 'auto';
obj.VisibleMap().onload = function(){ obj.mapReady=1; VisibleMap().onload='';}
CHANGE THIS LINE>>>>>>> obj.VisibleMap().onerror = function(event) { SharpMap_BeginRefreshMap(obj,1); VisibleMap().onerror=''; }
}
Another way:
I found the solution to this problem was to set the event property before the src property in the SharpMap_GetCallbackResponse function of AjaxMap.js
It seems that IE7 prefers it that way.
It seems that IE7 prefers it that way.
So instead of
imgdnew.src = url;
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } };
do ...
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } };
imgdnew.src = url;
imgdnew.src = url;
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } };
do ...
imgdnew.onload = function(){ obj.mapReady=1; imgdnew.onload=''; if(obj.zoomEnded==1) { SharpMap_BeginFade(obj); } };
imgdnew.src = url;