首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SystemJS和SignalR

SystemJS和SignalR
EN

Stack Overflow用户
提问于 2016-06-10 23:13:20
回答 2查看 393关注 0票数 3

有没有人让SystemJS和SignalR一起工作?我一直在尝试使用SystemJS (来自jspm)来加载SignalR,但无论我做什么,异步加载程序总是会出现竞争情况。大约一半的加载时间,在我的初始化代码运行时,SignalR并没有加载。

代码语言:javascript
复制
System.config({
    baseURL: '/Scripts',
    map: {
        'jquery': '/bundles/jquery',
        'jquery.ui.widget': 'jquery-ui-1.10.4.js',
    },
    meta: {
        '/signalr/hubs': {
            deps: ['jquery.signalR-2.2.0.min.js']
        }
    }
});
Promise.all([
    System.import('jQuery.FileUpload/jquery.fileupload.js'),
    System.import('knockout-3.1.0.debug.js'),
    System.import('/signalr/hubs')
])
.then(function (libs, gg) {
    var ko = libs[1];

    //My init code
    var chat = $.connection.jobProgress;
    // Throws '$.connection is undefined' about half the time
})
EN

回答 2

Stack Overflow用户

发布于 2016-06-13 17:45:53

尝试使用signalr包配置。

代码语言:javascript
复制
System.config({
    baseURL: 'Scripts',
    map: {
            "signalr-jquery": "Scripts/jquery.signalR-2.2.0",
            "signalr": "signalr",
            "jquery": "/bundles/jquery" //I would pull it from jspm also
        },
        meta: {
            "jquery": {
                "format": "cjs"

            },
            "signalr-jquery": {
                "format": "global",
                "deps": ["jquery"]
            }
        },
        packages: {
            "signalr": {
                "format": "global",
                "defaultExtension": false,
                "meta": {
                    "hubs": {
                        "format": "global",
                        "deps": ["signalr-jquery"]
                    }
                }
            }
        }
})

和导入集线器

代码语言:javascript
复制
    System.import('signalr/hubs').then(function(hubs) {

   })
票数 2
EN

Stack Overflow用户

发布于 2016-08-10 03:20:59

我可以使用以下配置加载它:

代码语言:javascript
复制
System.config({
    map: {
      'jquery': 'node_modules/jquery/dist/jquery.js',
      'signalrJquery': 'jquery.signalR-2.2.0.js',
      'signalrHubs': 'jquery.signalR-2.2.0.Hubs.js'
    },
    meta: {
        "jquery-1.10.2.js": { exports: "$" }, 
        signalrJquery: {exports: "$"},
        signalrHubs: {
            deps: ['jquery-1.10.2.js', 'signalrJquery'],
        exports: "$"
    }
});

然后像这样获取它:

代码语言:javascript
复制
import * as $ from 'signalrHubs';

代码语言:javascript
复制
var $ = require('signalrHubs');

请注意,依赖项中的jquery版本是signalr所依赖的版本。如果需要,网站的其余部分可以使用较新的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37751686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档