私はかなりjavascriptを新しくし、基本だけを知っています。 init関数が呼び出されたときに発生するフローのように、次のコードを説明できる人はいますか?誰も次のコードを説明することができます
私の理解は、init関数が呼び出されると、id出力を持つHTML要素にマップされるグローバル変数出力を設定することです。次に、testWebSocket javascript function
を呼び出します。これにより、WebSocketオブジェクトが作成されます。その後、私は完全に理解していない部分です。
私の理解が間違っている場合は、私を修正してください。ラインwebsocket.open = function(evt) { onOpen(evt) };
で
、WebSocketのオブジェクトは、私たちが
function(evt) { onOpen(evt) };
で返されているものは何でもに設定されているオープンという名前の属性を持っています。
これは、onOpenのjavascript関数を呼び出します。
function onOpen(evt) {
writeToScreen("CONNECTED");doSend("WebSocket rocks");
}
これは、onSend javascript関数を呼び出しています。
function doSend(message) {
writeToScreen("SENT: " + message);websocket.send(message);
}
私の最初の質問はWebSocket object(websocket.open)
に設定されていますか?
2番目の質問:以下
はtestWebSocket() javascript function
が実行される順序です。
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) {
onOpen(evt)
};
websocket.onclose = function(evt) {
onClose(evt)
};
websocket.onmessage = function(evt) {
onMessage(evt)
};
websocket.onerror = function(evt) {
onError(evt)
};
私は以下のコードを実行し、エラーが発生した場合にのみブラウザにエラーが表示されます。
だから私の質問は、WebSocket object(websocket) open, close, onmessage, onerror
の属性が設定されていると、彼らが設定されていない理由を、それぞれに、私はwriteToScreen関数を呼び出していますし、testWebSocket() javascript function
に何が起こっているにもかかわらず、ということです。
function init() {
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) {
onOpen(evt)
};
websocket.onclose = function(evt) {
onClose(evt)
};
websocket.onmessage = function(evt) {
onMessage(evt)
};
websocket.onerror = function(evt) {
onError(evt)
};
}
function onOpen(evt) {
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt) {
writeToScreen("DISCONNECTED");
}
function onMessage(evt) {
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
websocket.close();
}
function onError(evt) {
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message) {
writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message) {
var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);
}
コード全体を見てみたいですか?なぜ 'クラス' 'メソッド'と '変数'が最初であるのか、どうして "変数を渡す"さえどういうことかを知りませんでしたか? –