ThinkGeo.com    |     Documentation    |     Premium Support

Dynamic Layer does not redraw in IE/Firefox - rendering issues

Hello,


Short story:


We have a collection of InMemoryFeatureLayers added to the DynamicOverlay. Through an Ajax call we make some modifications to the layers server-side (i.e. add/remove some features), and then call map.getDynamicOverlay().redraw().


In Chrome this works just fine, but in IE and Firefox the layer does not redraw even though the above method returns true. After panning or zooming enough to make the extent change, the layer redraws. This is extremely frustrating and must be something not only happening to me? Also, sometimes it seems that parts of the layer (tiles?) are randomly not drawn/missing. I can easily notice this by drawing a line shape from X to Y, and after making some modifications server-side trough ajax the changes are not properly reflected on the map. This is very apparent in IE10. Just simple zooming/panning make  things disappear from the layer.


I got some suggestions that this might be caused by the browsers' cache. Maybe some bug in the MapSuite code that sends the tile response back? Is it missing the "no cache" header or something?


Overall, we are seeing some rather annoying rendering issues with MapSuite MVC and IE9/10 and Firefox. In Chrome things generally work very well.


I am awaiting your reply.



Hi Sindre, 
  
 Thanks for the detailed description, just as you have mentioned, it’s caused by the browsers’ cache. Please change the  
  
 map.getDynamicOverlay().redraw(). 
  
 to  
  
 map.getDynamicOverlay().redraw(true). 
  
 to add a extra timestamp to do the refresh. 
  
 Thanks, 
 Johnny

 Thank you. I will try that.



Hi, 
  
 Could you give us some more information on when to use or not the Boolean value when calling redraw method on the client side. 
  
 Thanks in advance. 
  
 Jm

Hi Jm, 
  
 This input parameter name of redraw function is “force”, if it’s true, the layer will be forced to redraw by adding a randome paramter to the request string, in other words, it will make sure the request doesn’t read the client cached data. If it’s false, it will read the cached data if it’s requested before. 
  
 Thanks, 
 Johnny

Johnny, 
  
 Unfortunately, there are still rendering issues in IE10. When zooming/panning the map, the layers starts to fall apart after a short while. Features on the layer are only partially drawn and their positions does not update correctly. Have you done thorough testing of MapSuite MVC on IE 10?

Hi Sindre, 
  
 Could you let me which OS you are using? Windows 7 or 8? 
  
 Thanks, 
 Johnny

Johnny, 
  
 I am using Windows 8.

 Hi Sindre,


Thanks for providing the further information, but I'm sorry that we are unable to recreate the problem on our end, we are using Windows8 and IE 10.0.9200.16484. The attached is the code we used for test, please check it out:


 Here is the screenshot we got:



Can you try on your end or check if there is anything missed in the demo?


Thanks,


Johnny



Post_11070.zip (1.37 KB)