0

我希望为 .net Web 表单中的一系列字段创建智能感知,使用户能够单击其中一个选项,然后依次填写一系列字段(姓名、地址等)。使用 c#.net 和 ajax 实现这一点非常简单。但是,最近我被迫加密一些正在针对数据库搜索的关键字段,因此该功能现在被破坏了。我们目前解密这些可搜索字段的唯一方法是在 C#.net 中。

为了修复该功能,我正在考虑:a)当页面加载时,获取所有记录并存储在内存中的数组中(未加密),并且作为搜索字段中的用户键使用 linq 或 lambda 来获取记录(s) 感兴趣的。b)当页面加载时,将所有记录存储在一个js数组中(未加密)并执行搜索客户端。

对于我的 Web 服务器和客户端的浏览体验而言,哪一条是考虑性能的最佳途径?

我认为这将是 < 100k 记录。

4

3 回答 3

1

哇,这是加密的动态数据。

在每次页面加载时向客户端发送大量记录会很慢。

您可能会使用动态缓存,每隔几秒加载一次数据。

于 2012-07-30T14:58:27.667 回答
1

为什么不将记录存储在服务器缓存中并发出 ajax 请求。这样做将使记录集可供所有用户使用。

于 2012-07-30T14:09:59.317 回答
1

每行有多大?大约 100k 行可能是很多数据。

在客户端

客户端上的 100k 是很多数据,即使它是几列数据。那只是数据,然后是搜索它的问题。这是桌面浏览器的问题。它将杀死移动浏览器。

在服务器上

这个比较靠谱。

需要考虑的事项:

  • 将所有结果加载到内存中会消耗多少内存?
  • 将所有记录加载到内存中的延迟(网络、数据库)是多少?也许可以异步完成以减少对用户的影响。
  • 在 C# 中搜索可能很快,尤其是在使用字典时,它不如数据库快。您是否考虑过只将需要解密的数据存储在内存中,而将其余数据留在数据库中。需要时从数据库中获取其余数据?

Ajax 仍然是可能的(假设数据存储在服务器上)。您必须将搜索请求路由到适当的存储(在内存、数据库或两者的混合中)。

于 2012-07-30T15:27:14.937 回答