Rumah hujung hadapan web tutorial js JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap

Dec 17, 2023 pm 10:13 PM
javascript websocket enjin carian masa nyata

JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap

JavaScript dan WebSocket: Cipta enjin carian masa nyata yang cekap

Pengenalan:
Dengan perkembangan Internet, pengguna mempunyai keperluan yang lebih tinggi dan lebih tinggi untuk enjin carian masa nyata. Apabila mencari dengan enjin carian tradisional, pengguna perlu mengklik butang carian untuk mendapatkan hasil kaedah ini tidak dapat memenuhi keperluan pengguna untuk hasil carian masa nyata. Oleh itu, menggunakan teknologi JavaScript dan WebSocket untuk melaksanakan enjin carian masa nyata telah menjadi topik hangat. Artikel ini akan memperkenalkan secara terperinci penggunaan teknologi JavaScript dan WebSocket untuk mencipta enjin carian masa nyata yang cekap, dan memberikan contoh kod khusus.

1 Pengenalan kepada WebSocket
WebSocket ialah protokol komunikasi dupleks penuh yang boleh mewujudkan sambungan berterusan antara penyemak imbas dan pelayan dan mencapai penghantaran data dua hala masa nyata. Tidak seperti permintaan HTTP tradisional, selepas sambungan WebSocket diwujudkan antara klien dan pelayan, sambungan boleh dikekalkan untuk masa yang lama tanpa perlu menghantar permintaan setiap kali.

2. Langkah pelaksanaan enjin carian masa nyata

  1. Reka bentuk antara muka hadapan
    Pertama, kita perlu mereka bentuk antara muka hadapan di mana pengguna boleh memasukkan kata kunci carian dan memaparkan hasil carian dalam masa nyata. Antara muka boleh dilaksanakan menggunakan HTML dan CSS, jadi saya tidak akan menerangkan secara terperinci di sini.
  2. Penulisan kod bahagian hadapan
    Gunakan JavaScript untuk melaksanakan logik bahagian hadapan. Pertama, kita perlu mewujudkan sambungan dengan pelayan melalui WebSocket Kodnya adalah seperti berikut:
var socket = new WebSocket('ws://localhost:8080');
socket.onopen = function() {
  console.log('WebSocket连接已建立');
  // 其他初始化操作
};

socket.onmessage = function(event) {
  var data = JSON.parse(event.data);
  // 处理服务器推送的数据
};

socket.onclose = function() {
  console.log('WebSocket连接已关闭');
};
Salin selepas log masuk

Selepas sambungan WebSocket diwujudkan, kita boleh memantau kata kunci yang dimasukkan oleh pengguna dan menghantar kata kunci ke pelayan untuk carian. Kod tersebut adalah seperti berikut:

var input = document.getElementById('search-input');
input.addEventListener('input', function(event) {
  var keyword = event.target.value;
  socket.send(keyword);
});
Salin selepas log masuk
  1. Penulisan kod sebelah pelayan
    Gunakan mana-mana bahasa pengaturcaraan bahagian belakang (seperti Java, Python) untuk menulis kod sebelah pelayan, menerima kata kunci yang dihantar oleh bahagian hadapan, melakukan carian dan hantar hasil carian ke bahagian hadapan. Berikut ialah kod contoh mudah:

Kod contoh Java:

@ServerEndpoint("/search")
public class SearchEndpoint {

    @OnMessage
    public void onMessage(Session session, String keyword) {
      List<String> results = search(keyword);
      session.getBasicRemote().sendText(JSON.stringify(results));
    }
  
    private List<String> search(String keyword) {
      // 执行搜索操作,获取搜索结果
    }
  
}
Salin selepas log masuk

Kod contoh Python:

from flask import Flask, websocket

app = Flask(__name__)

@app.websocket('/search')
def search(ws):
  while True:
    keyword = ws.receive()
    results = search(keyword)
    ws.send(json.dumps(results))

def search(keyword):
  # 执行搜索操作,获取搜索结果

if __name__ == '__main__':
  app.run()
Salin selepas log masuk
  1. Kemas kini antara muka hadapan
    Selepas menerima hasil carian yang dikembalikan daripada pelayan, kami perlu mengemas kini bahagian hadapan antara muka untuk memaparkan hasil carian. Contoh kod adalah seperti berikut:
socket.onmessage = function(event) {
  var data = JSON.parse(event.data);
  updateSearchResults(data);
};

function updateSearchResults(results) {
  var searchResults = document.getElementById('search-results');
  searchResults.innerHTML = '';

  results.forEach(function(result) {
    var item = document.createElement('li');
    item.textContent = result;
    searchResults.appendChild(item);
  });
}
Salin selepas log masuk
  1. Pengendalian pengecualian dan pengoptimuman lain
    Dalam penggunaan sebenar, kami juga perlu menambah pengendalian pengecualian, pemprosesan halaman, pengoptimuman prestasi, dll. untuk meningkatkan kestabilan dan prestasi enjin carian masa nyata .

Kesimpulan:
Dengan menggunakan teknologi JavaScript dan WebSocket, kami boleh melaksanakan enjin carian masa nyata yang cekap. Hujung hadapan mewujudkan sambungan dengan hujung belakang melalui WebSocket, menghantar kata kunci yang dimasukkan oleh pengguna ke pelayan dalam masa nyata untuk carian dan menolak hasil carian ke hujung hadapan dalam masa nyata untuk paparan. Enjin carian masa nyata ini meningkatkan pengalaman pengguna dan memenuhi permintaan tinggi pengguna untuk hasil carian masa nyata. Melalui pengenalan artikel ini, saya percaya bahawa pembaca mempunyai pemahaman yang lebih mendalam tentang menggunakan JavaScript dan WebSocket untuk melaksanakan enjin carian masa nyata.

Atas ialah kandungan terperinci JavaScript dan WebSocket: Membina enjin carian masa nyata yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gabungan Java dan WebSocket: bagaimana untuk mencapai penstriman video masa nyata Gabungan Java dan WebSocket: bagaimana untuk mencapai penstriman video masa nyata Dec 17, 2023 pm 05:50 PM

Gabungan Java dan WebSocket: bagaimana untuk mencapai penstriman video masa nyata

Bagaimana untuk mencapai komunikasi masa nyata menggunakan PHP dan WebSocket Bagaimana untuk mencapai komunikasi masa nyata menggunakan PHP dan WebSocket Dec 17, 2023 pm 10:24 PM

Bagaimana untuk mencapai komunikasi masa nyata menggunakan PHP dan WebSocket

SSE dan WebSocket SSE dan WebSocket Apr 17, 2024 pm 02:18 PM

SSE dan WebSocket

PHP dan WebSocket: Amalan terbaik untuk pemindahan data masa nyata PHP dan WebSocket: Amalan terbaik untuk pemindahan data masa nyata Dec 18, 2023 pm 02:10 PM

PHP dan WebSocket: Amalan terbaik untuk pemindahan data masa nyata

Bagaimanakah Java Websocket melaksanakan fungsi papan putih dalam talian? Bagaimanakah Java Websocket melaksanakan fungsi papan putih dalam talian? Dec 17, 2023 pm 10:58 PM

Bagaimanakah Java Websocket melaksanakan fungsi papan putih dalam talian?

golang Petua pengaturcaraan WebSocket: mengendalikan sambungan serentak golang Petua pengaturcaraan WebSocket: mengendalikan sambungan serentak Dec 18, 2023 am 10:54 AM

golang Petua pengaturcaraan WebSocket: mengendalikan sambungan serentak

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata

Cara menggunakan WebSocket untuk pemindahan fail dalam golang Cara menggunakan WebSocket untuk pemindahan fail dalam golang Dec 18, 2023 am 09:06 AM

Cara menggunakan WebSocket untuk pemindahan fail dalam golang

See all articles