我目前开始了一个小项目,体验 JS 和 HTML5 的世界。
几个月前我已经尝试过了,但我停止了,因为我没有足够的时间从头开始创建 MVC 单页应用程序。有太多的概念和模式,必须理解,如果我在日常工作中缺乏使用,我会后悔失去所有这些知识。使用它或失去它!
昨天我刚刚在 John Papa 的博客上发现了这篇文章,我认为这将是一个很好的开始。基本上,它是一个名为HotTowel的 MVC 模板,它实现了已经很不错的概念,如数据绑定、缩小等。我会在我目前需要的范围内体验代码,并会在需要时进一步体验它。
我想构建一个应用程序,用于从我现有的数据模型项目中获取数据。在我们的 Silverlight 应用程序中,我们通过预加载和初始化字典和其他属性以及调用异步 Init()
方法(例如,下载包含自定义代码的 XML 文件并将它们放入字典)来引导它。MEF 用于摆脱不方便的依赖项。
据我了解,服务器端初始化必须Application_Start()
在 Global.asax 文件中的方法中完成。我想知道如何在这种方法中等待异步调用?最佳做法是什么?我在客户端的查询在很大程度上依赖于这些类的初始化。有哪些选择?
我的想法如下:
Application_Start()
触发并忘记异步初始化过程。如果我在初始化完成之前执行一个请求(我猜是在控制器上),我必须等待初始化过程的回调并在它到达时立即开始查询。这样做的好处是,初始化运行,而用户已经可以浏览应用程序。- 我会实现某种惰性初始化。一旦提出第一个请求,我就会处理初始化。不过,第一个请求可能需要很长时间。
- 我会在
Application_Start()
. 到目前为止,我看到的主要缺点是浏览器窗口对用户来说似乎是冻结的。如果可以让用户跟踪当前的初始化状态(某种闪屏),我会对这个解决方案感到满意。
虽然我不知道他们中的任何一个人将如何具体工作,但如果你们中的任何人能给我一些关于如何以及从哪里开始的建议,我会很高兴。