随着Dojo的名声越来越大,更多的开发者选择使用Dojo作为前端开发的框架。虽然Dojo是一种异步框架,能够借助各种ContentPane快速的搭建起开发框架,并实现异步通信,但有时一个模块包
在View区域中,包含了多个Widget。其中View区域是指代Dojo中的 StackContainer,而Widget则是Dojo中的ContentPane。每个 StackContainer可以包含多个ContentPane,并且可以通过 selectChild 方法指定当前显示的Widget(也就是ContentPane中的内容)。
虽然Dojo采用StackContainer动态指定当前的ContentPane来实现页面的“异步”,但是由于其加载机制是在首次打开该页面时,一次性加载完全部资源,再通过控制每个ContentPane的显示和隐藏,来达到动态显示的效果。这样导致系统在首次打开此页面时,一次加载资源过多,系统长时间没有响应等问题,大大降低了用户体验。
为解决此问题,我们需要更改页面的加载逻辑,将原来的“饥饿式”加载,更改为“按需式”加载。那么我们应该如何操作呢?由于我们已经按照系统的业务逻辑将系统进行了模块划分,这大大简化了我们的操作步骤。我们仍然需要这些Widget作为独立的模块应用,并在系统初始化时将它们注册为组件。当我们需要打开一个业务模块时,只需要实例化特定的业务模块(Widget)就可以了,这样将系统资源加载的时间平均分配到各个模块中,就避免了一次性加载资源所产生的问题。
以上仅是Dojo可优化内容之一,如果你还想了解Dojo其它方面可优化的内容,欢迎留言,我们共同探讨并改进原来的方案,让Dojo变的越来越灵活,越来越好用。