使用JavaScript和Require.JS选择jQuery 1.9或2.0

前端之家收集整理的这篇文章主要介绍了使用JavaScript和Require.JS选择jQuery 1.9或2.0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
jQuery 2.0越来越成熟: http://blog.jquery.com/2013/03/01/jquery-2-0-beta-2-released/

jQuery 2.0与旧版浏览器不兼容,所以必须知道什么时候停留jQuery 1.9.推荐的方法是使用IE的条件注释:

<!--[if lt IE 9]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->
<!--[if gte IE 9]><!-->
    <script src="jquery-2.0.0b2.js"></script>
<!--<![endif]-->

>当前Web开发最佳实践表明,我们应该避免浏览器嗅探或用户代理字符串解析,但这不是什么条件注释?
> jQuery 2.0是否只能打破旧版Internet Explorer的兼容性?还是有其他浏览器会在2.0中更糟糕?
>如果这不仅仅影响Internet Explorer(这是唯一的条件性评论工作),那么我们应该采用什么策略来选择最佳的jQuery?
>在JavaScript环境中有一个全局可访问的值/对象/函数/ etc,其存在可以用于指示与jQuery 2.0的兼容性(例如特征检测)?

主要问题

我的项目目前使用Require.JS来模块化我的代码.我的代码只有当遇到需要它的第一个部分时才加载jQuery.

使用Require.JS加载正确版本的jQuery的最佳方法是什么?

我正在考虑:

>在加载Require.JS之前使用IE条件注释,然后手动“定义”jQuery
>在设置Require.JS的路径(在任何需要的jQuery之前)的代码中使用JS功能检测,根据需要将路径设置为1.9或2.0(我的首选方法)
总是使用1.9无论什么(最安全最无聊的方法)

解决方法

适应niaccurshi的答案AMD规格.
// Do this before your first use of jQuery.

var pathToJQuery
if('querySelector' in document
    && 'localStorage' in window
    && 'addEventListener' in window) {
    pathToJQuery = '//cdn/jQuery2.0'
} else {
    pathToJQuery = '//cdn/jQuery1.9'
}

require.configure({'paths':{
    'jquery': pathToJQuery
}})

require(['jquery'],function($){ /* you get the one you need here */ })

猜你在找的jQuery相关文章