gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:33:45 25 4
gpt4 key购买 nike

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 环境中是否存在全局可访问的值/对象/函数/等,其存在可用于表示与 jQuery 2.0 的兼容性(例如功能检测)?

主要问题

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

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

我目前正在考虑:

  • 在加载 Require.JS 之前使用 IE 条件注释,然后手动“定义”jQuery

  • 在设置 Require.JS 路径的代码中使用 JS 功能检测(在任何 require 的 jQuery 之前)根据需要将路径设置为 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 */ })

关于javascript - 使用 JavaScript 和 Require.JS 选择 jQuery 1.9 或 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15213439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com