2015-11-23 48 views
1

我是requirejs的新手。我正在创建一个应用程序。我的问题是我担心使用我的应用程序的requirejs版本和网页上已经运行的requirejs版本之间的冲突。在单个页面中加载两个requireJs应用程序

所以要测试这个问题,我已经创建了两个应用程序使用两个不同的版本。我正在两个应用程序中打印版本号。

目录结构

/require 
-/libs 
--require.js(version 2.1.19) 
-main.js 
/require-test 
-/libs 
--require.js(version 2.1.20) 
-main-test.js 

我用下面的代码来运行这两个应用

<script type="text/javascript" src="/require-test/libs/require.js" data-main="/require-test/main-test" ></script> 

<script type="text/javascript" src="/require/libs/require.js" data-main="/require/main" > </script> 

两个require.js文件越来越负载。 问题只是需求测试应用程序正在运行。它打印正确版本的require.js。 如果我切换应用程序的顺序。第一款应用每次都会加载。 什么是冲突?如何解决这个问题?

+0

无法在单个页面上加载同一库两次。 – Cerbrus

+0

@Cerbrus对此有解决方法吗?我有一个本机应用程序,网页上将会出现冲突,这些网页已经在其页面上运行了requirejs应用程序。 – NeiL

回答

0

在2.x系列中,我不记得遇到过一个在以前的版本中工作的东西在新版本中不起作用的情况。因此,在2.x系列中加载所有最新版本的代码应该没有问题。

如果两个应用程序使用相同库的显着不同版本(例如jQuery 1.3 vs 2.x),可能会成为问题的是什么。解决方案是使用contexts

1

使用require脚本一次,并在'data-main'文件中合并配置数据,以便为一个文件中的两个库加载必要的内容。

+0

我没有控制用户页面上的requirejs应用程序,我只能更改我的应用程序中的代码。所以这两个应用程序都需要自己的require脚本 – NeiL

+1

我认为那就是问题所在,你应该单独控制,如何使用你的应用程序的需求。我不认为需要支持多个基地网址。 – Jay

相关问题