1

Node サーバーがホストする Socket.io を使用しようとしています。Require.js を使用して依存関係を管理しています。私の webapp はオフライン対応です。

webapp がオフラインで、ノード サーバーに接続できない場合、require.js は socket.io 依存関係を見つけることができないため、エラーをスローします。

GET http://mikemac.local:8000/socket.io/socket.io.js  require.js:33
Uncaught Error: Script error
http://requirejs.org/docs/errors.html#scripterror

この場合、システムの大部分で node/io を使用していません。「おまけ」のリアルタイム通知だけです。したがって、アプリはそれなしで実行する必要があります。

どうすればこれに対処できますか?見つからないことを検出し、接続/更新が試行されるまでsocket.io機能を無効にする方法が欲しいです。

4

1 に答える 1

0

構成セットアップで他のモジュールにフォールバックし、フォールバックでオフラインであることを示します。

requirejs.config({
    enforceDefine: true,
    paths: {
        socketio: [
            'http://mikemac.local:8000/socket.io/socket.io',
            //If the CDN location fails, load from this location
            'lib/socketoffline'
        ]
    }
});

//socketoffline
define({ offline: true});

//Later
require(['socketio'], function (socketio) {
    if (socketio.offline){
        // your library did not load:
    } else {
        // socketio loaded
    }
});
于 2013-05-25T18:47:42.777 に答える