是否有必要为不同的功能使用两个不同版本的jquery

时间:2018-10-05 04:42:51

标签: jquery

我正在学习开发Web应用程序的过程。在构建应用程序的不同组件时,我会从在线示例中获取帮助,并尝试查看它是否有助于实现我的功能目标。在我的一个应用程序中,我正在使用两种不同版本的jQuery。

<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 

我尝试删除1.12.4版本并运行了我的应用程序,它确实可以正常工作。

我的问题是,同时拥有这两个库真的必要吗?它们提供不同的功能还是3.1实际上是1.12.4的升级?换句话说,3.1.0是否具有1.12.4的所有功能?

当我的应用程序在没有库的情况下正常工作时,是否是因为保留了函数,缓存并被引用了?

很困惑。

我确信这是一个普遍的问题,并且担心是否有资格投票。但是对于像我这样的自我学习者来说,社区的指导不仅有价值,而且可以帮助我理解我所做的是非。

2 个答案:

答案 0 :(得分:0)

这是没有必要的,实际上,如果其中一个涵盖了所有情况,则应该避免使用导入多个jquery版本,因为它几乎容易出错,发生冲突。如果出于某些原因您确实需要在项目中将这两个文件放在一起,则导入配置帮助会有所帮助,请参阅related post

<!-- load jQuery 3.1.0 -->
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<script type="text/javascript">
var jQuery310 = $.noConflict(true);
</script>

<!-- load jQuery 1.12.4 -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
<script type="text/javascript">
var jQuery1124 = $.noConflict(true);
</script>

答案 1 :(得分:0)

  

我的问题是,同时拥有这两个库真的必要吗?

不,您不必这样做。我想最后包含的库必须重写了jQuery的定义,因为您还没有使用noConflict()方法

  

它们提供不同的功能还是3.1实际是升级   1.12.4。?

某些方法可能已被弃用,有些方法可能会保留。请参阅https://blog.jquery.com/2016/07/07/jquery-3-1-0-released-no-more-silent-errors/
https://api.jquery.com/category/version/3.1/
http://blog.jquery.com/2016/05/19/jquery-migrate-1-4-1-released-and-the-path-to-jquery-3-0/

我的2美分:
使用最新的一个,如果有问题,则可以使用jquery迁移插件https://jquery.com/upgrade-guide/3.0/,直到解决损坏的代码为止。