【发布时间】:2010-12-15 01:00:20
【问题描述】:
我必须处理一个加载大约需要 2-3 分钟的课程。此对象位于 silverlight / ASP / WCF 项目的服务器端。加载后,此对象将包含一个包含 5 000 000 个较小对象的列表,这些对象将用于执行某些计算。
用户不介意在应用程序加载时等待 2 或 3 分钟,但他们不想在每次计算时再次等待。
我希望您能就我的选择提供意见。
选项 A:将大对象保存在会话变量中。有些人声称会话变量是有毒的......尤其是在与大型对象一起使用时。真的那么糟糕吗?
选项B:在服务器启动时加载大对象,然后想办法在会话之间共享或复制这个对象
选项 C(这个可行……但它并不完美):创建第二个对象,该对象将从我的耗时类中复制 5 000 000 个对象,然后将其发送到客户端。但是,此解决方案并不完美,因为这 5 000 000 个对象是敏感数据,不应在客户端“按原样”访问。
【问题讨论】:
-
您能否提供任何线索来说明为什么将 5,000,000 个对象复制到客户端是有意义的?不能在数据已经存在的服务器上进行计算吗?
-
在服务器端执行计算是我想做的……这就是为什么我宁愿使用选项 A 或 B。选项 C 更像是一种解决方法。
-
您在服务器上发送的数据可以被加密..但是如果您将数据存储在cookie中,您还需要序列化您的对象...并且cookie的空间有限..
标签: asp.net silverlight wcf session-variables