我有一個文本框,用戶可以開始輸入字母。如果數據庫中有相對詞語,則它們出現在文本框下方的dropdown
中。選擇選項時關閉多個websockets連接
要在數據庫中搜索,並帶回結果,我使用WebSockets(0.10.12的NodeJS和JavaScript)
因此,代碼是像這樣
//something is typed , so call the function, to send data and make query
<input id="typename" type="text" onKeyUp="lookup();" >
//this is where I send data and get back results
function lookup(){
var so=new WebSocket("ws://localhost:1234");
so.onerror=function (evt) {alert('Error');}
so.onopen=function(){
so.send(document.getElementById("typename").value)
}
so.onmessage = function (evt) {
var received_msg = evt.data;
var packet = JSON.parse(received_msg);
so.close();
//feed results to dropdown.....
}
}
這相當於多個連接斷開和閉合用戶類型。
即使用戶從下拉列表中選擇了某些東西,連接仍然在後臺打開和關閉。因爲如果我輸入例如4個字母,打開/關閉將是4.
如果我馬上選擇我想要的,在後臺還有2或3個連接,打開和關閉。他們仍然餵養結果。這意味着,實際上,不要讓我選擇我想要的。我必須一遍又一遍地選擇它。 (下拉閃爍)如果我編輯它並想將其保存回分貝,我不能,因爲仍然有連接運行,所以我無法打開一個新的保存它。代碼等待...
我怎麼可以這樣做
<select id="listout" size="5" onChange="so.close();" > </select>
停止連接在後臺運行?上述不起作用。即使我將so
設置爲全局或全局。不起作用,因爲我可以看到多個連接同時打開,但沒有關閉。我必須刷新頁面才能全部關閉。
有沒有建議嗎?
如何關閉所有連接,當下拉列表中的內容發生變化時(=用戶選擇了某種內容)?
在此先感謝
PS我道歉了巨大的前奏。思維將幫助你更好地理解這個問題,或提供替代