Maison > interface Web > js tutoriel > JavaScript et WebSocket : créer un moteur de recherche en temps réel efficace

JavaScript et WebSocket : créer un moteur de recherche en temps réel efficace

WBOY
Libérer: 2023-12-17 22:13:23
original
1345 Les gens l'ont consulté

JavaScript et WebSocket : créer un moteur de recherche en temps réel efficace

JavaScript et WebSocket : Créez un moteur de recherche en temps réel efficace

Introduction :
Avec le développement d'Internet, les utilisateurs ont des exigences de plus en plus élevées en matière de moteurs de recherche en temps réel. Lors d'une recherche avec les moteurs de recherche traditionnels, les utilisateurs doivent cliquer sur le bouton de recherche pour obtenir des résultats. Cette méthode ne peut pas répondre aux besoins des utilisateurs en matière de résultats de recherche en temps réel. Par conséquent, l’utilisation des technologies JavaScript et WebSocket pour mettre en œuvre des moteurs de recherche en temps réel est devenue un sujet brûlant. Cet article présentera en détail l'utilisation de la technologie JavaScript et WebSocket pour créer un moteur de recherche en temps réel efficace et donnera des exemples de code spécifiques.

1. Introduction à WebSocket
WebSocket est un protocole de communication full-duplex qui peut établir une connexion persistante entre le navigateur et le serveur et réaliser une transmission de données bidirectionnelle en temps réel. Contrairement aux requêtes HTTP traditionnelles, une fois qu'une connexion WebSocket est établie entre le client et le serveur, la connexion peut être maintenue pendant une longue période sans qu'il soit nécessaire d'envoyer une requête à chaque fois.

2. Étapes de mise en œuvre du moteur de recherche en temps réel

  1. Conception de l'interface frontale
    Tout d'abord, nous devons concevoir une interface frontale où les utilisateurs peuvent saisir des mots-clés de recherche et afficher les résultats de la recherche en temps réel. L’interface peut être implémentée en utilisant HTML et CSS, je n’entrerai donc pas trop dans les détails ici.
  2. Écriture de code front-end
    Utilisez JavaScript pour implémenter la logique front-end. Tout d'abord, nous devons établir une connexion avec le serveur via WebSocket. Le code est le suivant :
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连接已关闭');
};
Copier après la connexion

Une fois la connexion WebSocket établie, nous pouvons surveiller les mots-clés saisis par l'utilisateur et envoyer les mots-clés au serveur pour la recherche. Le code est le suivant :

var input = document.getElementById('search-input');
input.addEventListener('input', function(event) {
  var keyword = event.target.value;
  socket.send(keyword);
});
Copier après la connexion
  1. Écriture de code côté serveur
    Utilisez n'importe quel langage de programmation back-end (tel que Java, Python) pour écrire du code côté serveur, recevoir des mots-clés envoyés par le front-end, effectuer des recherches et envoyer les résultats de la recherche au front-end. Voici un exemple de code simple :

Exemple de code 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) {
      // 执行搜索操作,获取搜索结果
    }
  
}
Copier après la connexion

Exemple de code 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()
Copier après la connexion
  1. Mise à jour de l'interface frontale
    Après avoir reçu les résultats de recherche renvoyés par le serveur, nous devons mettre à jour le front-end interface pour afficher les résultats de la recherche. L'exemple de code est le suivant :
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);
  });
}
Copier après la connexion
  1. Gestion des exceptions et autres optimisations
    En utilisation réelle, nous devons également ajouter la gestion des exceptions, le traitement de la pagination, l'optimisation des performances, etc. pour améliorer la stabilité et les performances des moteurs de recherche en temps réel. .

Conclusion :
En utilisant la technologie JavaScript et WebSocket, nous pouvons mettre en œuvre un moteur de recherche en temps réel efficace. Le front-end établit une connexion avec le back-end via WebSocket, envoie les mots-clés saisis par l'utilisateur au serveur en temps réel pour la recherche et pousse les résultats de la recherche vers le front-end en temps réel pour l'affichage. Ce moteur de recherche en temps réel améliore considérablement l'expérience utilisateur et répond à la forte demande des utilisateurs en matière de résultats de recherche en temps réel. Grâce à l'introduction de cet article, je pense que les lecteurs comprennent mieux l'utilisation de JavaScript et de WebSocket pour mettre en œuvre des moteurs de recherche en temps réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal