会话持久性数据的最佳实践,以尽量减少回发

时间:2010-11-16 14:10:24

标签: asp.net architecture

我的问题是如何最好地处理会话的临时数据。该场景类似于购物车或类似投注单。当用户浏览网站并添加具有唯一ID的项目时。如果用户想要提交数据,我只对以这种方式收集的数据感兴趣。

我正在使用jQuery,JSON和MS SQL DB开发ASP .Net 3.5。

我认为有几种方法可以做到这一点。

  • 将完整的帖子发回服务器。存储每个选项,相应地更新页面控件。
  • 通过Ajax请求将选择发送回服务器并更新显示控件。
  • 在JavaScript中构建所有功能并将所有值存储在会话cookie中。在用户选择提交之前,没有任何内容被发送到服务器。

我真的想在这里考虑性能,但我不想最终得到1000行的JavaScript代码。

有关pro和con的最佳实施的任何建议吗?

干杯, 斯蒂芬

2 个答案:

答案 0 :(得分:1)

将事物存储在会话cookie中并不是一个好主意,因为每次请求都会将其发送回服务器。如果你能找到一种方法在不使用cookie的情况下将状态存储在客户端上,那么你可能有一个可行的以客户为中心的选项,但我无法想到任何便携式的东西。 HTML5和Flash中有些东西可以做到,但是你不想去那里 - 但是,对于前者,完全是后者的情况。

我会使用AJAX回发到服务器(对于无法处理的浏览器,可以优雅地降级到完整帖子),然后将信息存储在易失性存储器中 - 即不存储在数据库中。只在需要时将其写入数据库。这在Java中非常容易(您可以将信息与会话相关联),所以我假设ASP.net也有一些方法可以做到这一点。

答案 1 :(得分:0)

这三种可能性对我来说都很好。但问题是:您期望有多少流量?

您提出的每个选项都适合给定方案。假设您将拥有A LOT(成千上万)用户,而不是可用的硬件很多,那么您应该尝试尽可能减少对应用程序的请求数量,并尽可能多地将数据存储在客户端中,然后再将其发送到服务器。

如果它是较小的应用程序,那么使用Session或其他一些中央数据库存储就可以了。

这完全取决于您的要求。