0

signalRを使ってチャットアプリを作っています。signalr.js 1.0.1 を追加しました。アプリケーションが次のように起動するときに、global.asax にシグナル ハブを作成しました。

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

編集: シグナルのすべてのファイルを動的に追加しました

<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);
4

1 に答える 1

0

スクリプトを動的にロードする場合は、スクリプト ローダーを使用する必要があります。すばやく簡単な解決策として、試して使用できます

http://headjs.com/

依存関係管理などを備えたより堅牢なソリューションについては、調査する価値があります。

http://requirejs.org/

于 2013-05-29T06:55:04.720 に答える