我目前正在使用支持自身和JavaScript之间双向通信的Silverlight 5应用程序。 Silverlight应用程序负责渲染3D内容,JavaScript负责收集和准备渲染数据。使用异步AJAX时,Silverlight应用程序不会变为空闲
我面临的问题是,Silverlight 5 DrawingSurface只在DrawingSurface无效并且应用程序变为空闲后重新绘制。不幸的是,当使用异步AJAX请求从服务器下载我需要的数据时,DrawingSurface不会重新绘制,直到所有数据都被下载(尽管每次下载数据后都无效DrawingSurface)。
我理解这一点,但让我困惑的是,当我在Silverlight中使用WebClient完成同样类型的异步下载请求时,DrawingSurface在大部分失效调用后成功重新绘制。
最初,我认为这可能是由于一些线程问题,但所有的调用(和回调)在同一个线程上运行。我试过使用jQuery的AJAX API并在JavaScript中编写我自己的XmlHttpRequest处理程序;但我从两方面都得到了相同的结果。我最初注意到jQuery以我请求的顺序返回数据(而Silverlight的WebClient不是),这导致我创建自己的XmlHttpRequest处理程序,因为我认为重新排序可能导致脚本在异步调用期间保持活动状态。
有没有人有过这个问题之前和/或没有人有任何解决方法/修复建议?