防止IE Silverlight在网格中缓存值

防止IE Silverlight在网格中缓存值,silverlight,internet-explorer,Silverlight,Internet Explorer,我有一个silverlight应用程序,它在网格中显示一些值。应用程序的另一部分更新这些值并将更新保存到源数据。所有这些都可以正常工作,包括更新网格中显示的值……直到稍后导航回页面(比如点击刷新)。然后神奇地,网格中的所有值都回到了您第一次访问页面时的状态。我可以检查并验证数据是否正确地存在于源系统中,我还可以通过进入internet选项并设置浏览历史记录,以便在每次访问页面时查找页面的新版本,使其正常工作。但我不能保证用户会这么做 我以前在IE中遇到过很多次这样的问题,但是正常的修复在这里似乎

我有一个silverlight应用程序,它在网格中显示一些值。应用程序的另一部分更新这些值并将更新保存到源数据。所有这些都可以正常工作,包括更新网格中显示的值……直到稍后导航回页面(比如点击刷新)。然后神奇地,网格中的所有值都回到了您第一次访问页面时的状态。我可以检查并验证数据是否正确地存在于源系统中,我还可以通过进入internet选项并设置浏览历史记录,以便在每次访问页面时查找页面的新版本,使其正常工作。但我不能保证用户会这么做


我以前在IE中遇到过很多次这样的问题,但是正常的修复在这里似乎不起作用。我已经在XAP文件的请求中添加了一个时间戳,以确保每次都会提取该文件,但这还不够好。我还向页面添加了pragma no cache标记,但仍然无法进入。似乎Silverlight本身就是它自己的特例。是否可以在SL对象中执行其他操作以使其每次访问都刷新???

您使用什么代码填充网格

如果在创建页面时加载数据,则只会从数据库中提取一次

如果在加载页面时加载数据,或在导航到页面时加载数据,则每次显示页面时都会从数据库中提取数据

正如肯·史密斯在评论中所说:

将数据检索和填充代码移动到主窗体的OnNavigate事件,并退出应用程序启动

这意味着,如果更新数据,然后刷新页面,则应显示新值


(如果没有代码,我无法100%确定)

您使用什么代码填充网格

如果在创建页面时加载数据,则只会从数据库中提取一次

如果在加载页面时加载数据,或在导航到页面时加载数据,则每次显示页面时都会从数据库中提取数据

正如肯·史密斯在评论中所说:

将数据检索和填充代码移动到主窗体的OnNavigate事件,并退出应用程序启动

这意味着,如果更新数据,然后刷新页面,则应显示新值


(如果没有代码,我无法100%确定)

viewmodel对象是在App.xaml的应用程序启动期间创建的,数据是在构建和实例化所有支持对象时提取的。如果用于填充网格的事件是罪魁祸首,为什么更改客户端的Internet选项会改变应用程序的性能?@Mark-我认为客户端的Internet选项与此无关。点击刷新只会重新创建Silverlight对象,从而重新加载数据。我认为Chris的意思是,您可能希望将数据检索和填充代码移动到主窗体的OnNavigate事件,在App.xaml的Application_启动期间创建viewmodel对象,并在构建和实例化所有支持对象时提取数据。如果用于填充网格的事件是罪魁祸首,为什么更改客户端的Internet选项会改变应用程序的性能?@Mark-我认为客户端的Internet选项与此无关。点击refresh只会重新创建Silverlight对象,从而重新加载数据。我认为Chris的意思是,您可能希望将数据检索和填充代码移动到主窗体的OnNavigate事件中,并退出应用程序启动。我很同情,在某些客户端遇到了类似的情况。最后,我在很多查询中添加了神奇的更改,但如果您已经尝试过,我没有其他建议。您会建议哪些神奇的更改?我一直在尝试查看是否有一个事件在应用程序被查看时引发,到目前为止,加载似乎没有任何作用。我说的是在所有webservice查询中添加一些随机部分。这与XAP时间戳非常相似。我很同情,因为在一些客户身上遇到了同样的事情。最后,我在很多查询中添加了神奇的更改,但如果您已经尝试过,我没有其他建议。您会建议哪些神奇的更改?我一直在尝试查看是否有一个事件在应用程序被查看时引发,到目前为止,加载似乎没有任何作用。我说的是在所有webservice查询中添加一些随机部分。这与XAP时间戳非常相似。