“加载”;“在飞行中”;使用requirejs编写代码

“加载”;“在飞行中”;使用requirejs编写代码,requirejs,famo.us,Requirejs,Famo.us,我正在尝试创建一个在线交互式js编程测试平台。我有一个代码窗口和一个目标iframe,在这里加载代码以执行。我用html包装代码并将其加载到iframe中。问题是,我想要测试的代码通常是使用数据主参数通过requirejs加载的。似乎代码需要从一个单独的文件加载,这样我就不能将其包含在html中 有效但对我没有帮助的是,在服务器上创建一个文件作为data main参数的目标,并将html发送到需要requirejs的iframe,然后加载我的代码 html: 这需要将动态代码写回服务器,这不是一

我正在尝试创建一个在线交互式js编程测试平台。我有一个代码窗口和一个目标iframe,在这里加载代码以执行。我用html包装代码并将其加载到iframe中。问题是,我想要测试的代码通常是使用数据主参数通过requirejs加载的。似乎代码需要从一个单独的文件加载,这样我就不能将其包含在html中

有效但对我没有帮助的是,在服务器上创建一个文件作为data main参数的目标,并将html发送到需要requirejs的iframe,然后加载我的代码

html:

这需要将动态代码写回服务器,这不是一个合理的解决方案。我正在尝试实现这样的东西

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...