【问题标题】:Best way to store/get information client side存储/获取信息客户端的最佳方式
【发布时间】:2012-03-15 03:30:57
【问题描述】:

我有一个使用列表框的 ASP Web 应用程序。我的困境是列表框上项目选择的变化会快速而频繁地发生,因此回发以获取我需要的信息最终会在客户端变得非常慢。

我的问题是: 在客户端存储数据的最佳方式是什么?还是我应该只使用 Postback 或 ajax 之类的东西?

对于我可以拆分的每个项目,需要存储的信息可以放在一个字符串中,但是需要有列表框中所有项目的信息,并且列表框中的项目数量是未知的.

请告诉我您认为获取信息的最佳位置。

【问题讨论】:

  • 我一直在考虑使用“隐藏字段”并在 ASP 中创建页面加载。我可以使用这些值来放入我可以在 javascript 中拆分和使用的信息字符串。你认为这是个好主意吗?

标签: c# javascript asp.net web


【解决方案1】:

这真的取决于你想走多远。回发将很快实施,但可能会变得笨拙和缓慢。以一种或另一种方式使用 ajax 将大大加快速度,并且可以使用多种方式。其程度将取决于您希望花费多少时间来开发它与对用户的好处/使用频率。

作为一个具体的答案,我建议对数据进行 AJAX 处理,但是您是每次需要它还是加载一次时都这样做,这取决于应用程序/上下文。

【讨论】:

  • 最好将所有内容都加载到那里,而不必返回和转发到服务器。
  • 检查为最接近我正在寻找的答案的答案:)
【解决方案2】:

正如 g.foley 所写,它是特定于上下文的,如果不了解更多细节就无法回答。
我可以说我曾经持有一个仅在提交表单时发送的 JavaScript 对象,也许这种方法适合你。

【讨论】:

  • 所以您使用 Javascript 对象来保存所有信息?有没有办法存储一个“全局”对象,当函数完成时不会清除?
  • 您可以使用 HTML5 localStorage - 请参阅stackoverflow.com/questions/2010892/…中的一些讨论
【解决方案3】:

从问题的子上下文中,我猜测当列表框上的选择发生变化时,您真的不需要来自服务器的信息吗?如果我是对的,那么您可以将信息存储在 javascript 变量中,然后在浏览器导航到另一个页面/关闭(onBeforeUnload)之前通过 AJAX 将数据发布回服务器。这样,您将减少与服务器的持续通信。如果您最终使用此方法,请注意 Chrome 确实不喜欢卸载或 beforeUnload 时的异步 AJAX 调用。您需要使您的呼叫同步。 IE也不喜欢它,但结果不同。您实际上可能会失去与服务器的连接,因此当从您的网站加载下一页而不是同时使用 4/6 连接时,您将只有 3/5 可用。

如果我猜错了,那么最好的选择是在选择更改时对服务器进行 AJAX 调用。这将是获取信息的最快方式(WebSockets 除外)。

【讨论】:

  • 不幸的是,我需要获取列表框中每个项目选择的信息。否则我将能够侥幸在页面之间使用 ASP。 AJAX 似乎是答案的方式。所以可能看看情况如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 2020-12-11
  • 2013-06-19
  • 1970-01-01
  • 2020-12-03
  • 2020-07-09
相关资源
最近更新 更多