javascript - 为什么包裹在if语句中的require始终会执行呢?
阿神
阿神 2017-04-10 16:52:02
[JavaScript讨论组]

使用requirejs碰到如下的问题,我希望在IE9以下的版本中加载selectivizr.js,所以我判断了:

if(browser.desktop && browser.msie && browser.versionNumber < 9){
    require('selectivizr');
}

browser是使用的jquery.browser.js插件,但是我用chrome测试发现,无论if表达式返回的是真还是假,require('selectivizr')这句始终会执行。我找遍了github也找不到一个可以简单的条件判断加载的方法,只有一个AMD-feature.js,但是它的使用方法我感觉太复杂了,就没有简单点的办法么?!

阿神
阿神

闭关修行中......

全部回复(2)
大家讲道理

<!--[if IE]>可以吗?

PHPz

跟你的条件没有任何关系的,这里你首先要明白requirejs用的是哪一套规范?

requirejs使用的是AMD规范,AMD提倡的是依赖前置,也就是说不管你的require写在什么位置,都会提前加载。这里容易混淆的地方是requirejs还支持“simplified CommonJS wrapping”,也就是类似cmd规范的写法,你可以把require就近写,但是呢,AMD规范所规定的加载机制并不会因此改变,依然会优先加载代码中所有require的文件。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号