场景:现有一个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规范,主要思想肯定就是异步加载咯,seajs遵循CMD规范,自然可以真正按需加载
如果你强行要按需加载的效果,我觉得那还是用seajs吧
不过你说的if中不能加载我还真没测出来这个bug
我这样写if中是不执行的!
题主的问题我还是没有遇到,这样if也是可以控制的