“加载”;“在飞行中”;使用requirejs编写代码
我正在尝试创建一个在线交互式js编程测试平台。我有一个代码窗口和一个目标iframe,在这里加载代码以执行。我用html包装代码并将其加载到iframe中。问题是,我想要测试的代码通常是使用数据主参数通过requirejs加载的。似乎代码需要从一个单独的文件加载,这样我就不能将其包含在html中 有效但对我没有帮助的是,在服务器上创建一个文件作为data main参数的目标,并将html发送到需要requirejs的iframe,然后加载我的代码 html: 这需要将动态代码写回服务器,这不是一个合理的解决方案。我正在尝试实现这样的东西 html:“加载”;“在飞行中”;使用requirejs编写代码,requirejs,famo.us,Requirejs,Famo.us,我正在尝试创建一个在线交互式js编程测试平台。我有一个代码窗口和一个目标iframe,在这里加载代码以执行。我用html包装代码并将其加载到iframe中。问题是,我想要测试的代码通常是使用数据主参数通过requirejs加载的。似乎代码需要从一个单独的文件加载,这样我就不能将其包含在html中 有效但对我没有帮助的是,在服务器上创建一个文件作为data main参数的目标,并将html发送到需要requirejs的iframe,然后加载我的代码 html: 这需要将动态代码写回服务器,这不是一
....
由于您实际上没有使用define
调用定义模块,因此可以使用require
:
require(["famous/core/Engine", "famous/core/Surface"], function (Engine, Surface) {
var mainContext = Engine.createContext();
// Etc...
您可以将define
看作是一个require
调用,它另外定义了一个模块。使用define
的方式是定义一个没有名称的模块,因为您没有给它命名(这通常是正确的做法),但它不是从.js
文件加载的。当您没有将模块的名称作为define
的第一个参数时,RequireJS会从加载模块的.js
文件中指定一个名称
另一件需要记住的事情是,require
立即安排其回调执行。(回调不会立即执行,但会立即安排执行。)而define
不会安排任何事情。它只记录回调,然后当require
调用(或类似的调用)需要它时,回调就会执行。谢谢。就这样。我的代码是动态的,所以require元素会有所不同,但是重新格式化调用将是简单的机制。再次感谢。富有的
/*globals require*/
require.config({
shim: {
},
paths: {
famous: 'lib/famous',
requirejs: 'lib/requirejs/require',
almond: 'lib/almond/almond',
'famous-polyfills': 'lib/famous-polyfills/index'
}
});
// this is the injection point where the dynamic code starts
define(function (require,exports,module) {
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var mainContext = Engine.createContext();
var surface = new Surface({
size: [100, 100],
content: "Hello World",
classes: ["red-bg"],
properties: {
textAlign: "center",
lineHeight: "20px"
}
});
alert('hi');
mainContext.add(surface);
});
//this is the end of the dynamic code
<html>
....
<script type="text/javascript" src="lib/requirejs/require.js"</script>
<script type="text/javascript">
/*globals require*/
require.config({
shim: {
},
paths: {
famous: 'lib/famous',
requirejs: 'lib/requirejs/require',
almond: 'lib/almond/almond',
'famous-polyfills': 'lib/famous-polyfills/index'
}
});
// this is the injection point where the dynamic code starts
define(function (require,exports,module) {
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var mainContext = Engine.createContext();
var surface = new Surface({
size: [100, 100],
content: "Hello World",
classes: ["red-bg"],
properties: {
textAlign: "center",
lineHeight: "20px"
}
});
alert('hi');
mainContext.add(surface);
});
//this is the end of the dynamic code
</script>
require(["famous/core/Engine", "famous/core/Surface"], function (Engine, Surface) {
var mainContext = Engine.createContext();
// Etc...