标签: amd

如何通过CDN使用Dojo加载自定义AMD模块?

我正在使用谷歌的CDN,并尝试使用他们的加载器加载我自己的AMD模块.我知道我做错了什么但是我被卡住了.有任何想法吗?

    <script src="https://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js" 
            type="text/javascript" data-dojo-config="async:true,parseOnLoad:true"></script>
    <script type="text/javascript">
        require(["dojo/_base/kernel", "dojo/_base/loader", "dojo/parser"], function(dojo){
            dojo.registerModulePath("pgGallery", "http://127.0.0.1:8080/js");
        });
        require(["pgGallery/Message"], function(m){
            m.success("foo");
        });
    </script>
Run Code Online (Sandbox Code Playgroud)

http://127.0.0.1:8080/js/Message.js是模块的位置.

javascript dojo amd

10
推荐指数
1
解决办法
4949
查看次数

AMD的OpenCL是否提供类似于CUDA的GPUDirect的东西?

NVIDIA提供GPUDirect以减少内存传输开销.我想知道AMD/ATI是否有类似的概念?特别:

1)AMD GPU在与网卡连接时是否避免第二次内存传输,如此处所述.如果图形在某些时候丢失,这里描述了GPUDirect对从一台机器上的GPU获取数据以通过网络接口传输的影响:使用GPUDirect,GPU内存进入主机内存,然后直接进入网络接口卡.如果没有GPUDirect,GPU内存将转移到一个地址空间中的主机内存,然后CPU必须进行复制以将内存转移到另一个主机内存地址空间,然后它就可以转到网卡.

2)如果在同一PCIe总线上共享两个GPU,AMD GPU是否允许P2P内存传输,如此处所述.如果图形在某些时候丢失,这里描述了GPUDirect对同一PCIe总线上GPU之间传输数据的影响:使用GPUDirect,数据可以直接在同一PCIe总线上的GPU之间移动,而不会触及主机内存.如果没有GPUDirect,数据总是必须返回到主机才能到达另一个GPU,无论GPU位于何处.

编辑:BTW,我不完全确定GPUDirect有多少是蒸发器,有多少是实际有用的.我从来没有真正听说过GPU程序员将它用于真实的东西.对此的想法也是受欢迎的.

cuda amd nvidia opencl gpudirect

10
推荐指数
2
解决办法
3760
查看次数

如何使用requireJS访问模块变量?

我已经使用Javascript了一段时间,我刚刚尝试过使用模块和requireJS,这很难让我对新的设计模式有所了解!

这是我的第一次尝试:

require([
    "jquery",
    "testModule"
], function ($, testModule) {
    $(function () {
        var testInstance1 = testModule;
        testInstance1.setID(11);
        alert(testInstance1.id);
    });
});
Run Code Online (Sandbox Code Playgroud)

和testModule.js

define([
  'jquery'
], function ($) {

    var id = 0;

    var setID = function (newID) {
        id = newID;
        return id;
    };
    return {
        setID: setID,
        id:id
    };
});
Run Code Online (Sandbox Code Playgroud)

这返回0,我期待11.我错过了什么?

当然,它也是一个简化的例子.我想创建多个对象,每个对象应保持自己的状态变量.例如,如果我想要一个模块将一个列表附加到一个容器,DIV但是还包含要添加的函数,清除或查询该列表中的数据,我应该如何构建模块函数,以便每个实现都保持自己的状态.

谢谢

javascript design-patterns amd modular requirejs

10
推荐指数
1
解决办法
7809
查看次数

使用requirejs时访问全局对象

我知道不建议使用全局对象,使用AMD背后的整个想法是避免使用全局对象.但是对于一些遗留代码,我必须在全局对象中定义一些东西.目前代码如下所示:

//example2.js
define(function(){
  var globalObject = window;
  globalObject.x = ...
  globalObject.y = ...
});
Run Code Online (Sandbox Code Playgroud)

它工作但硬编码全局对象window看起来不是很好,我很想知道是否有可能删除它.什么时候define()没用,代码看起来像这样:

//example1.js
x = ...
y = ...
Run Code Online (Sandbox Code Playgroud)

我知道,我知道你讨厌这段代码,但让我们define()谈谈:如何在requirejs中的函数内以结构化的方式访问全局变量?我希望有一个像函数的隐藏的最后一个参数传递给define()这样的:

//example3.js
define(function(globalObject){
  globalObject.x = ...
  globalObject.y = ...
});
Run Code Online (Sandbox Code Playgroud)

甚至更简单:this变量将指向该函数内的全局对象.例如:

//example4.js
define(function(){
  this.x = ...
  this.y = ...
});
Run Code Online (Sandbox Code Playgroud)

注意:我不确定最后一个.调查this传递给函数内部的变量require()说它等于window哪个可以作为我的问题的答案,但我找不到任何文档提到传递函数正在运行的上下文.也许它毕竟是在全局变量的上下文中运行的?

javascript amd requirejs

10
推荐指数
3
解决办法
9855
查看次数

使用RequireJS和Backbone.js进行页面转换

我正在使用RequireJS和Backbone.js开发移动应用程序.我想通过向每个锚添加data-transitiondata-direction属性来指定从一个页面到另一个页面的转换(与jQuery Mobile一样):

<a href="#home" data-transition="slide" data-direction="left">Go to the home page</a>
Run Code Online (Sandbox Code Playgroud)

我的所有视图都扩展了一个基本视图,它将一个单击处理程序附加到锚点并捕获这些属性的值:

define([
    'zepto',
    'lodash',
    'backbone'
], function ($, _, Backbone) {
    'use strict';

    BaseView = Backbone.View.extend({
        events: {
            'click a': 'navigate'
        },
        navigate: function (e) {
            e.preventDefault();

            var href = $(e.currentTarget).attr('href'),
                transition = $(e.currentTarget).attr('data-transition'),
                direction = $(e.currentTarget).attr('data-direction');

            Backbone.history.navigate(href, true);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何将这些值传递给路由器的路由处理程序,定义为另一个模块:

define([
    'zepto',
    'lodash',
    'backbone'
], function ($, _, Backbone) {
    'use strict';

    var Router = Backbone.Thumb.Router.extend({
        routes: {
            '': 'home'
        }
    });

    var …
Run Code Online (Sandbox Code Playgroud)

mobile amd requirejs backbone.js

10
推荐指数
1
解决办法
3695
查看次数

在设计JS库时,我应该使它与RequireJS/AMD兼容吗?

如果我正在制作一个JavaScript库供一般使用,我应该如何处理RequireJS支持?

据我所知,使您的代码更多或更少地符合RequireJS使得没有RequireJS就无法使用.那我为什么要那样做?

  • 没有要求的人如何使用此代码?

  • 有没有办法支持两者而不分叉/分支?我应该提供垫片代码吗?

  • 我能正确理解吗?

javascript amd requirejs

10
推荐指数
1
解决办法
3386
查看次数

是否可以在同一个Typescript项目中混合使用AMD和CommonJS模块

我正在尝试使用Typescript将Durandal与node.js服务器集成,以便在服务器端和客户端上定义模块.

我遇到的问题是Durandal强烈依赖于RequireJS和AMD风格的定义模块,我不想在服务器端引入,因为它使用RequireJS我没有任何机会运行CommonJS-ish模块在客户端上(node.js的默认值).

棺材中的最后一个问题是,我发现没有办法定义哪些文件应该编译为AMD模块,哪个文件作为CommonJS由tsc编写 - 这似乎是最简单的解决方案.

我不认为分离客户端部分和服务器部分是一种选择,因为很多代码对于这两个部分都是通用的.

所以,我的问题有三个:

  • 有没有办法在相同的Typescript项目中混合AMD和CommonJS模块(最好使用NodejsTools)

  • 如果没有,有没有办法强迫Durandal使用CommonJS文件来加载视图/视图模型等等

  • 如果这一切都不可能,那么在node.js服务器上使用AMD模块是可能的(也是明智的)

任何想法都受到高度赞赏

amd commonjs node.js typescript durandal

10
推荐指数
1
解决办法
1584
查看次数

在同一页面上使用Browserify和RequireJS?

所以我遇到了一个有趣的用例,我使用Browserify将我的所有资产捆绑在一个项目中,但是当某个应用程序内窗口需要加载大型外部(项目外部)模块时被访问.(这是一个由三个脚本组成的视频播放器模块,可在需要时异步拉入).

目前,uncalled object如果在Browserified app.js文件之前加载了requireJS模块,我会从错误中获得各种错误,如果在Browserified代码之后cannot find module加载,则会出现错误.

无论如何,我可以让Browserify和RequireJS在同一页面上很好地播放吗?我在失去理智!

javascript amd requirejs browserify

10
推荐指数
1
解决办法
4803
查看次数

修复'define'未定义no-undef in react create app第三方导入

我已经在我的反应应用程序中导入了momentjs,导入后反应创建应用程序正在抛出以下错误限制构建

./src/shared_components/quiz-player/node_modules/moment/moment.js
第9行:'define'未定义no-undef

当我调查问题时,它会从下面的行中抛出

typeof define === 'function' && define.amd ? define(factory) :
global.moment = factory()
Run Code Online (Sandbox Code Playgroud)

这是由于amd模块定义,因为这是第三方库我无法解决问题,是否有任何事情可以告诉webpack配置期望amd模块定义或其他一些修复?

amd reactjs webpack create-react-app

10
推荐指数
1
解决办法
2298
查看次数

如何从Node.js中的不同应用程序注入模块

我有两个一起运行的节点应用程序/服务,1.主应用程序2.第二个应用程序

主应用程序负责显示最终不同应用程序的所有数据.现在我在主应用程序中放置了第二个应用程序的一些代码,现在它正在工作,但我希望它能够解耦.我的意思是secnod应用程序的代码不会在主应用程序中(通过某种方式在运行时注入它)

就像第二个服务注册到主应用程序注入它的代码.它的代码只是两个模块,是否可以在nodejs中完成?

const Socket = require('socket.io-client');
const client = require("./config.json");

module.exports =  (serviceRegistry, wsSocket) =>{
    var ws = null;
    var consumer = () => {
        var registration = serviceRegistry.get("tweets");
        console.log("Service: " + registration);
        //Check if service is online
        if (registration === null) {
            if (ws != null) {
                ws.close();
                ws = null;
                console.log("Closed websocket");
            }
            return
        }
        var clientName = `ws://localhost:${registration.port}/`
        if (client.hosted) {
            clientName = `ws://${client.client}/`;
        }
        //Create a websocket to communicate with the client
        if (ws == …
Run Code Online (Sandbox Code Playgroud)

javascript amd node.js express microservices

9
推荐指数
1
解决办法
671
查看次数