Deux façons d'optimiser l'actualisation des pages avec Ajax
Cette fois, je vais vous présenter deux méthodes d'actualisation de page optimisée Ajax. Quelles sont les précautions pour l'actualisation de page optimisée Ajax ? Voici des cas pratiques, jetons un coup d'œil.
Le servlet du contrôleur fournit des modifications simples :
Pour les systèmes Ajax, la réponse du serveur n'a pas besoin d'être le contenu complet de la page, elle peut simplement être
Données requises, le contrôleur ne peut pas transmettre la demande de données à la page jsp.
Le contrôleur dispose actuellement de deux options :
1. Générer directement des données de réponse simples.
Dans ce mode, le Servlet obtient directement le flux de sortie de la page via la réponse et génère une réponse de caractère via le flux de sortie
.
package pers.zkr.chat.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import pers.zkr.chat.service.ChatService; @WebServlet(urlPatterns={"/chat.do"}) public class ChatServlet extends HttpServlet { @Override public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("utf-8"); String msg=request.getParameter("chatMsg"); System.out.println(msg); if(msg!=null&&!msg.equals("")){ String user=(String)request.getSession().getAttribute("user"); System.out.println(user+"user"); ChatService.instance().addMsg(user, msg); } //设置响应内容的类型 <strong>response.setContentType("text/html;charset=utf-8"); // 获取页面输出流 PrintWriter out = response.getWriter(); //直接生成响应 out.println(ChatService.instance().getMsg());</strong> request.setAttribute("msg",ChatService.instance().getMsg()); forward("/chat.jsp", request , response); } private void forward(String url, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.getRequestDispatcher(url) .forward(request , response); } }
2. Tournez-vous vers un simple jsp et utilisez la page JSP pour générer une réponse simple.
Le contrôleur transmet la demande à une autre page JSP, et la page JSP est uniquement responsable de la sortie des informations de discussion
Ici, vous avez besoin d'une page jsp pour recevoir les informations envoyées par le contrôleur Les données sont aussi le texte de réponse du serveur, et dans la page originale de
, il suffit de :
1) Créer un objet XMLHttpRequest
2) Envoyer une requête
3) Recevoir la réponse du serveur
package org.crazyit.chat.web; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.*; import org.crazyit.chat.service.*; /** * Description: * <br/>网站: <a href=http://www.jb51.net>脚本之家</a> * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @version 1.0 */ @WebServlet(urlPatterns={"/chat.do"}) public class ChatServlet extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException { // 设置使用GBK字符集来解析请求参数 request.setCharacterEncoding("utf-8"); String msg = request.getParameter("chatMsg"); if ( msg != null && !msg.equals("")) { // 取得当前用户 String user = (String)request.getSession(true) .getAttribute("user"); // 调用ChatService的addMsg来添加聊天消息 ChatService.instance().addMsg(user , msg); } // 将全部聊天信息设置成request属性 <strong>request.setAttribute("chatList" , ChatService.instance().getMsg());</strong> // 转发到chatreply.jsp页面 forward("/chatreply.jsp" , request , response); } // 执行转发请求的方法 private void forward(String url , HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException { // 执行转发 request.getRequestDispatcher(url) .forward(request,response); } }
Page qui reçoit les données
<%@ page contentType="text/html;charset=GBK" errorPage="error.jsp"%> <%-- 输出当前的聊天信息 --%> ${requestScope.chatList}
Page html
<!DOCTYPE html> <html> <head> <meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" /> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>聊天页面</title> </head> <body onload="sendEmptyRequest();"> <p style="width:780px;border:1px solid black;text-align:center"> <h3>聊天页面</h3> <p> <textarea id="chatArea" name="chatArea" cols="90" rows="30" readonly="readonly"></textarea> </p> <p align="center"> <input id="chatMsg" name="chatMsg" type="text" size="90" onkeypress="enterHandler(event);"/> <input type="button" name="button" value="提交" onclick="sendRequest();"/> </p> </p> <script type="text/javascript"> var input = document.getElementById("chatMsg"); input.focus(); var XMLHttpReq; // 创建XMLHttpRequest对象 function createXMLHttpRequest() { if(window.XMLHttpRequest) { // DOM 2浏览器 XMLHttpReq = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE浏览器 try { XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } } // 发送请求函数 function sendRequest() { // input是个全局变量,就是用户输入聊天信息的单行文本框 var chatMsg = input.value; // 完成XMLHttpRequest对象的初始化 createXMLHttpRequest(); // 定义发送请求的目标URL var url = "chat.do"; // 通过open方法取得与服务器的连接 // 发送POST请求 XMLHttpReq.open("POST", url, true); // 设置请求头-发送POST请求时需要该请求头 XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 指定XMLHttpRequest状态改变时的处理函数 XMLHttpReq.onreadystatechange = processResponse; // 清空输入框的内容 input.value = ""; // 发送请求,send的参数包含许多的key-value对。 // 即以:请求参数名=请求参数值 的形式发送请求参数。 XMLHttpReq.send("chatMsg=" + chatMsg); } //定时请求服务器 function sendEmptyRequest() { // 完成XMLHttpRequest对象的初始化 createXMLHttpRequest(); // 定义发送请求的目标URL var url = "chat.do"; // 发送POST请求 XMLHttpReq.open("POST", url, true); // 设置请求头-发送POST请求时需要该请求头 XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 指定XMLHttpRequest状态改变时的处理函数 XMLHttpReq.onreadystatechange = processResponse; // 发送请求,,不发送任何参数 XMLHttpReq.send(null); // 指定0.8s之后再次发送请求 setTimeout("sendEmptyRequest()" , 800); } // 处理返回信息函数 function processResponse() { // 当XMLHttpRequest读取服务器响应完成 if (XMLHttpReq.readyState == 4) { // 服务器响应正确(当服务器响应正确时,返回值为200的状态码) if (XMLHttpReq.status == 200) { // 使用chatArea多行文本域显示服务器响应的文本 document.getElementById("chatArea").value = XMLHttpReq.responseText; } else { // 提示页面不正常 window.alert("您所请求的页面有异常。"); } } } function enterHandler(event) { // 获取用户单击键盘的“键值” var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; // 如果是回车键 if (keyCode == 13) { sendRequest(); } } </script> </body> </html>
Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article, plus Veuillez faire attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Utiliser Blod pour télécharger la barre de progression ajax
Code provoqué par plusieurs requêtes Ajax asynchrones Comment faire résoudre l'imbrication
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

Ajax (Asynchronous JavaScript et XML) permet d'ajouter du contenu dynamique sans recharger la page. En utilisant PHP et Ajax, vous pouvez charger dynamiquement une liste de produits : HTML crée une page avec un élément conteneur et la requête Ajax ajoute les données à l'élément après l'avoir chargé. JavaScript utilise Ajax pour envoyer une requête au serveur via XMLHttpRequest afin d'obtenir des données produit au format JSON à partir du serveur. PHP utilise MySQL pour interroger les données produit de la base de données et les encoder au format JSON. JavaScript analyse les données JSON et les affiche dans le conteneur de pages. Cliquer sur le bouton déclenche une requête Ajax pour charger la liste de produits.

Afin d'améliorer la sécurité Ajax, il existe plusieurs méthodes : Protection CSRF : générer un token et l'envoyer au client, l'ajouter côté serveur dans la demande de vérification. Protection XSS : utilisez htmlspecialchars() pour filtrer les entrées afin d'empêcher l'injection de scripts malveillants. En-tête Content-Security-Policy : limite le chargement de ressources malveillantes et spécifie les sources à partir desquelles les scripts et les feuilles de style peuvent être chargés. Valider les entrées côté serveur : validez les entrées reçues des requêtes Ajax pour empêcher les attaquants d'exploiter les vulnérabilités d'entrée. Utilisez des bibliothèques Ajax sécurisées : profitez des modules de protection CSRF automatiques fournis par des bibliothèques telles que jQuery.

Ajax n'est pas une version spécifique, mais une technologie qui utilise un ensemble de technologies pour charger et mettre à jour de manière asynchrone le contenu d'une page Web. Ajax n'a pas de numéro de version spécifique, mais il existe quelques variantes ou extensions d'ajax : 1. jQuery AJAX ; 2. Axios ; 3. Fetch API 5. XMLHttpRequest Niveau 2 ; -Événements envoyés ; 8, GraphQL, etc.
