首页 > requireJS如何在define中按需加载模块?

requireJS如何在define中按需加载模块?

场景:现有一个common.js模块为通用模块,代码为:

define(function(require, exports, module){
    if(浏览器版本 < IE9){
        require('html5');//加载html5.js插件
    }
});

然后在A.html、B.html、C.html中都加载了common.js:
<script>require(['common'])/script>,
现在问题来了,会发现if(浏览器版本 < IE9)返回的是真还是假,始终都会加载html5.js,之前提了一个问题,为什么包裹在if语句中的require始终会执行呢?
在seajs中有require.async()可以真正按需加载,那么在requireJS中是否有相同的办法呢?


requirejs遵循AMD规范,但是也是可以在代码中使用CMD规范去写的,所以楼上建议用seajs没有必要,楼主提的问题,这里就是去判断然后按需加载。


requirejs遵循AMD规范,主要思想肯定就是异步加载咯,seajs遵循CMD规范,自然可以真正按需加载
如果你强行要按需加载的效果,我觉得那还是用seajs吧
不过你说的if中不能加载我还真没测出来这个bug

<script>
            var isIE = (document.all) ? true : false;
            if(isIE){
                requirejs(['lib/GooFunc.js']);
            }
        </script>
        

我这样写if中是不执行的!

题主的问题我还是没有遇到,这样if也是可以控制的

【热门文章】
【热门文章】