【问题标题】:VB.Net application - display a message to the user whilst the application is starting upVB.Net 应用程序 - 在应用程序启动时向用户显示一条消息
【发布时间】:2011-05-05 01:32:59
【问题描述】:

我最近创建了一个应用程序,其中在应用程序启动时将大量数据加载到对象中,并根据需要加载其他数据。例如,如果用户请求目录页面,那么它将所有顶级类别数据加载到类别类型的对象中。然后,这将留在那里供其他用户使用(因此他们不必将此数据加载到对象中),并且如果他们碰巧在同一个应用程序实例期间登录,管理员可以对其进行更改。我知道这不是最有效的解决方案,如下所述,但它可以工作,目前页面加载时间不会太长。如果大部分所需数据已加载到对象中,则速度非常快。它还根据业务需求量身定制 - 与 Linq-to-SQL 等其他技术不同。

我面临的问题是,当请求一个页面时,需要显示关于不同类型对象的大量数据。例如,当请求显示可购买产品信息的目录页面时,它会加载所有产品和类别(因为产品引用类别对象,而不仅仅是类别名称)。

当所有这些数据都被加载到对象中时,我想显示一个带有消息的加载符号,这样用户就知道它不仅仅是在循环或任何东西中。有没有办法做到这一点?如果需要,我愿意使用 JS / jQuery。

提前致谢。

问候,

理查德

PS 我正在研究提高效率的方法 - 例如使用 HashTables 或 HashMaps。然而,这需要时间,因为有很多不同类型的项目(新闻、事件、目录项目 - 范围、集合、设计、RangeCollection、CollectionDesign、RangeCollectionDesign 和 RangeDesign - 用户、页面视图等等)。

【问题讨论】:

  • 嗯,看来我真的找到了答案。想我之前谷歌搜索时一定错过了这个链接。 codeproject.com/KB/aspnet/LoadingMsgWhilePageLoads.aspx。无论是否有人有更好的解决方案——也许不需要 JS 的解决方案,都会留下这个问题。
  • 您几乎可以肯定地重新考虑您的设计方法 - 使用一些延迟加载技术,以便您只加载需要呈现给用户的内容。我不清楚如何与其他用户共享这些数据,这是一个网络应用程序,不是吗?那部分听起来有点冒险。但总的来说,我认为使用“请稍候”的东西应该仅限于它们等待服务器完成工作,而不是在页面加载时加载大量可能不需要的数据(除非我们正在谈论一个大闪存或其他东西)。如果不是立即需要,您的应用不必加载太多。
  • 我会做到的,它会随着时间的推移简单地加载请求的数据。然而,目前这将不得不这样做。我一直都知道,使用这种方法,最终会出现问题。自从发布这篇文章后,我看了一点数据,我认为大部分数据实际上是页面浏览量,每天增加 50+ - 所以我可以简单地归档一周前的页面浏览量。这将解决这个网站的问题。但是,我正在考虑做一个比现有网站更有用的调查网站,但在这种情况下,过多的数据将是调查和问题本身。
  • 哦,顺便说一句,目前所有这些调查网站(或我加入的所有知名网站)都使用加载符号或空白页。我认为在新站点的情况下使用加载符号并不过分。在回答你的问题时,我不记得我用来跨多个用户存储数据的确切方法,但我想我正在使用 Application 对象,例如Application("SiteContent") = New SiteContent();。目前,Manager 类仅在首次需要时才会填充。例如通过SiteContent.UserManager().Items
  • 我突然想到,仅显示请求的项目(因此仅将请求的项目加载到对象中)不起作用,因为菜单显示了所有类别。但是,首先,他们会在显示该类别的链接之前检查每个类别中是否有多个产品 - 我们不希望客户现在导航到空类别,对吗?

标签: asp.net jquery css vb.net performance


【解决方案1】:

如果我错了,请纠正我,但我确实认为需要 Javascript 才能显示“正在加载”图像...单独使用服务器端脚本通常需要在所有内容加载后加载整个页面除非你想开始搞乱 IFrame。

这是 AJAX 的工作。您的问题的一个常见解决方案是有一个显示加载图标的小页面。该页面有一些 JavaScript 向服务器发出额外的 HTTP 请求以下载页面的其余部分。 JQuery 有一个“$.ajax”方法,旨在简化这个过程。

我建议在 jQuery 文档中查看 .ajax 方法的文档。不幸的是,要正确编写所有脚本代码似乎是一个相当微妙的过程,并且需要一段时间来学习。

【讨论】:

  • 感谢您的意见。我认为我们不想让关闭 JavaScript 的 5% 的人完全无法访问该网站(基于我上次查看 W3Schools 的统计数据 - 3 月 / 4 月)。我们的很多客户都是年长的商务男士/女士——他们往往是每天经营一家商店的人,而且技术含量不高。非技术人员往往对安全性有点怀疑,因此可能会相信他们读到的任何关于 JS 不安全的内容。必须有一些解决方案,在第一次发出请求时页面触发一些 JS...
  • 嗯,再次查看我在我的问题上发布的链接,这些解决方案似乎不适用于这种情况 - 一种方法使用您建议的技术,另一种方法我太累了要理解但肯定不简单。我不知道这个问题是否有像我希望的那样简单的解决方案......将在接下来的几周内的某个时候解决这个问题 - 目前正忙于工作面试和申请......
猜你喜欢
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多