我对javascript还是个新手,只知道基本知识。有人能解释一下下面的代码,就像在调用init函数时发生的流中一样吗?
我对下面代码的理解是,一旦调用init函数,就会设置一个全局变量输出,该输出映射到一个带有id输出的HTML元素。然后调用TestWebSocket javascript函数
。这将创建一个WebSocket对象。这之后是我不完全理解的部分。
在WebSocket.open=function(evt){onOpen(evt)};
行中,WebSocket对象有一个名为open的属性,我们将它设置为任何返回的属性
函数(evt){onOpen(evt)};
。
这反过来调用onOpen javascript函数。
function onOpen(evt) {
writeToScreen("CONNECTED");doSend("WebSocket rocks");
}
function doSend(message) {
writeToScreen("SENT: " + message);websocket.send(message);
}
所以我的第一个问题是在WebSocket对象(webSocket.open)
中设置了什么?
第二个问题:
下面是TestWebSocket()javascript函数
的执行顺序。
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对象(websocket)open、close、onmessage、onerror
的属性正在设置,并且在每个属性中,我都调用了writeToScreen函数,为什么没有设置这些属性,以及testWebSocket()javascript函数
上发生了什么。
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);
}
您正在查看事件处理程序。
TestWebSocket
函数尝试创建到WSURI
的WebSocket连接。
一旦成功打开该连接,就会调用onopen
函数。每当WebSocket连接接收到消息时,就会调用onMessage
函数,一旦连接关闭,就会执行onClose
。
您可能只看到正在显示的错误,因为连接无法建立,因此,onerror
是唯一被调用的东西。
这是我从骡子3到骡子4转换的第一个项目。我与mule4一起工作,但在Mule3是新的。有谁能帮帮我吗?你能告诉我这些自定义处理器和变压器在这个mule3代码中的用途吗?而Mule4中的等价代码会是什么呢?在骡子4中没有像这样的自定义变压器。请帮帮我..
我不太理解while循环中的条件,以及它代表什么'>>>='。
我在计算这条线的时间复杂度时遇到了麻烦。在我看来是二次O(n**2)。因为如果不使用列表理解,这里必须经过嵌套循环。
问题内容: 我是新手。我在宁静的api调用中看到了检查诺言的信息。 被用来保留promise对象。我读了诺言,但一无所获。尽管我可以不带api进行api调用,但是在文章中的某处使用了它。 所以我想知道在没有的情况下进行api调用的确切用法和区别。 请帮助。谢谢 问题答案: 我认为我写的有关$ q的文章可能会对您有所帮助。 $ q简介 $ q是角度定义的服务。与新的Promise()相同。但是$ q
本文向大家介绍解释下如下代码的意图:Array.prototype.slice.apply(arguments)相关面试题,主要包含被问及解释下如下代码的意图:Array.prototype.slice.apply(arguments)时的应答技巧和注意事项,需要的朋友参考一下 为类数组对象,并不是真正的数组。 可以实现数组的浅拷贝 由于 不是真正的数组,所以没有方法,通过可以调用数组对象的sli
问题内容: 问题答案: 作用 在你的Chrome浏览器的控制台中输入这段代码,你会发现不同HTML层都被使用不同的颜色添加了一个高亮的边框。是不是非常酷?但是,简单来说,这段代码只是首先获取了所有的页面元素,然后使用一个不同的颜色为它们添加了一个1px的边框。 解析 => 调用引用数组的forEach方法 => => => 对二进数1小数点右移24位 => 获得了一个位于之间的随机整数,也就是随机