加载集线器时出错

时间:2013-05-29 06:03:34

标签: javascript signalr

我正在使用signalR创建聊天应用程序。我添加了signalr.js 1.0.1。 当应用程序如下所示时,我已经在global.asax中创建了signalr hub:

RouteTable.Routes.MapHubs(new Microsoft.AspNet.SignalR.HubConfiguration() { EnableCrossDomain = true }); 

但我的问题是它有时显示我的错误。

Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/hubs'></script>.

修改 我动态添加了signalr的所有文件

<script lang="javascript" type="text/javascript">

    //add all js files for signalR chat dynamically to body
    function SetSignalRJs() {
        var fileref = document.createElement('script');
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", "Include/JS/JqueryPlugin/SignalR/jquery.signalR-1.0.1.js");

        document.getElementsByTagName("body")[0].appendChild(fileref);
    }
    function SetHub() {
        var fileref = document.createElement('script');
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", "signalr/hubs");
        document.getElementsByTagName("body")[0].appendChild(fileref);
    }
    function SetChatJs() {
        var fileref = document.createElement('script');
        fileref.setAttribute("type", "text/javascript");
        fileref.setAttribute("src", "Include/JS/CollectiveIntelligence/ChatApplication.js");
        document.getElementsByTagName("body")[0].appendChild(fileref);
    }

    //apply timeout for all js files
    setTimeout(SetSignalRJs, 1000);
    setTimeout(SetHub, 5000);
    setTimeout(SetChatJs, 6000);

1 个答案:

答案 0 :(得分:0)

如果要动态加载脚本,则应使用脚本加载器。 要获得快速简单的解决方案,您可以尝试使用

http://headjs.com/

对于具有依赖性管理的更强大的解决方案等,值得研究:

http://requirejs.org/