Seajs 异步加载测试

分类:Javascript |

项目中的使用了很多页面特效,几乎每个好的特效都是一个JS库,导致引用过多的JS 文件,加载速度过慢,最好的解决方式就是异步加载 了,很早之前就听说过seajs, 也了解过其原理,就是没有亲自实践过,今天有时间做一个很简单的测试,非Seajs高级用法,只是测试use 的 js 和不用Seajs的测试结果 :


自己任意生成了一个 xxx.js 为     5.1 M:

[root@w122114124227-0 views]# ll -h ../assets/js/seajs/xxx.js
-rw-r--r-- 1 root root 5.1M Aug 20 19:59 ../assets/js/seajs/xxx.js


下面我们看下实验结果:

  1. 普通 加载方式:


    blob.png

   2. 页面效果,加载时间过长,而且页面是空白状态:

blob.png



使用Seajs 后:


blob.png


测试结果 :虽然页面的xxx.js 还在加载中,但页面上的内容也可以查看,效果还是很明显的

blob.png



从此喜欢上 seajs 了 


补充:

关于seajs 的按需加载 , 之前一直理解为是如果你没执行到要加载的内容的话,是不会加载的,但经测试证明,seajs 的加载是,只要进行的了 use, require ,  都会进行异步加载的, 全部异步加载用到的JS,并非我理解的异步加载,如果真想做到异步按需加载,可以使用里面的rsync 方法进行加载:

require.asyc('./xxx.js',function(x){        
       //xxx 加载成功后,doSomething 
    })




相关资料:

Seajs 官网: http://seajs.org/docs/

常用API:  https://github.com/seajs/seajs/issues/266