我是相當新的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)
設置?
第二個問題:
下面是其中執行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);
}
你想要我們通過整個代碼?爲什麼不學習'class''方法'和'變量'是什麼,甚至可能是「如何傳遞一個變量」,你有沒有搜索過這些? –