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

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
页面加载性能优化
在互联网网站百花齐放的今天,网站响应速度是用户体验的第一要素,其重要性不言而喻,这里有几个关于响应时间的重要
加载 css html 性能优化 数据