


Partager une fonction AJAX encapsulée dans des compétences natives Javascript_javascript
Mon travail récent implique de nombreuses opérations ajax, et je dois faire les choses qui doivent être faites en arrière-plan. La fonction ajax utilisée maintenant est encapsulée par une personne en arrière-plan - mais elle est basée sur l'ajax de jquery. la fonction sans jquery est inutile. Et je pense que la méthode ajax de jquery est très complète et peut être utilisée directement si vous avez déjà jquery, alors son ajax ne sera pas utilisé en vain. Ce qui me manque, c'est une méthode ajax qui peut. être utilisé sans jquery.
J'ai donc aussi passé une journée à en écrire un. Les paramètres et la méthode d'appel sont similaires à l'ajax de jquery. Appelons-le xhr, car xhr=XMLHttpRequest.
/*
* Nom : xhr, fonction wrapper AJAX
* Description : Une classe d'encapsulation d'appel ajax, imitant la méthode d'appel ajax de jquery
*Auteur : Lampe Dix Ans
*/
var xhr = fonction () {
var
ajax = fonction () {
return ('XMLHttpRequest' dans la fenêtre) function () {
renvoie un nouveau XMLHttpRequest();
} : fonction () {
renvoie le nouvel ActiveXObject("Microsoft.XMLHTTP");
>
}(),
formatData= fonction (fd) {
var res = '';
pour (var f dans fd) {
res = f '=' fd[f] '&';
>
return res.slice(0,-1);
},
AJAX = fonction (ops) {
racine = ceci,
req = ajax();
root.url = ops.url;
root.type = ops.type || 'responseText';
root.method = ops.method || 'GET';
Root.async = ops.async || vrai
root.data = ops.data || {};
root.complete = ops.complete || fonction () {};
root.success = ops.success || fonction(){};
root.error = ops.error || fonction(s) { alert(root.url '->status:' s 'error!')};
root.abort = req.abort;
root.setData = fonction (données) {
pour (var d dans les données) {
root.data[d] = data[d];
}
>
root.send = fonction () {
var datastring = formatData(root.data),
sendstring,get = false,
async = root.async,
complete = root.complete,
méthode = root.method,
type=root.type;
Si(méthode === 'GET') {
root.url ='?'
get = true;
}
req.open(method,root.url,async);
if(!get) {
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
sendstring = datastring;
//Réinitialisez la méthode onreadystatechange avant l'envoi, sinon une nouvelle demande de synchronisation se produira et deux rappels réussis seront exécutés (chrome, etc. exécutera également onreadystatechange lors des demandes de synchronisation)
req.onreadystatechange = async function () {
// console.log('async true');
Si (req.readyState ==4){
compléter();
Si (req.status == 200) {
root.success(req[type]);
} autre {
Root.error(req.status);
}
} : null;
req.send(sendstring);
if(!async) {
//console.log('async false');
compléter();
root.success(req[type]);
}
>
root.url && root.send();
};
Retourner la fonction (ops) {return new AJAX (ops);}
}();
1.url : Adresse de la demande. Si vous ne la remplissez pas, la demande ne sera pas initiée. Mais si vous ne la remplissez pas et ne forcez pas l'envoi, vous ne me blâmez pas si quelque chose ne va pas. 🎜> 2.méthode : 'GET' ou 'POST', toutes en majuscules, GET par défaut
3.data : Les données à envoyer sont jointes, le format est un objet
4.async : s'il doit être asynchrone, vrai par défaut
5.type : Le type de données renvoyé est uniquement ResponseText ou ResponseXML. La valeur par défaut est ResponseText
.
6.complete : Fonction exécutée lorsque la requête est terminée
7.success : Fonction exécutée lorsque la requête est réussie
8.erreur : Fonction exécutée lorsque la requête échoue
Remarque : le paramètre type n'est pas aussi riche que le dataType de jquery. Il n'a que ResponseText ou ResponseXML en AJAX natif. Si des données json sont renvoyées, vous devez les traiter vous-même dans la fonction success pour convertir le texte en json.
Un objet xhr instancié a deux fonctions disponibles, l'une est send, la méthode appelante est : xhr.send(), aucun paramètre, sa fonction est d'initier le processus de requête. S'il n'y a pas d'url lors de l'initialisation, il ne le fera pas. être exécuté. méthode d'envoi, afin que vous puissiez ajouter l'url plus tard et lancer l'envoi manuellement - s'il n'y a pas d'url lors de l'envoi, la demande échouera et je n'ai pas géré cette erreur. Vous ne trouverez l'erreur que vous-même. >
Une autre méthode est setData. La méthode appelante est xhr.setData(data_obj), et son paramètre est un objet. La fonction de la méthode setData est de remplacer partiellement la valeur dans l'attribut data de xhr. déjà une page dans xhr.data : 1. Vous pouvez utiliser xhr.setData({page:2}) pour mettre à jour sa valeur sans affecter les autres valeurs d'attributqui existent déjà dans data.
Méthode d'appel :
Copier le code
var a1 = xhr({
données :{ 'nom d'utilisateur':'lix', 'mot de passe':'123456',
'genre':'masculin',
'interset':'play'
},
async: faux,
Méthode : 'GET',
Succès : fonction (données) {
var obj = JSON.parse(data);
//....
>
});
Remarque : Pas besoin d'écrire du nouveau
Après cette période d'expérience en projet, j'ai découvert qu'une classe ajax devait avoir une fonctionnalité très commune : pour faciliter les requêtes répétées. Par exemple, lorsque j'écrivais une pagination en ajax dans le projet, une requête devait être envoyée à chaque fois que la page était affichée. a été tourné, mais à l'exception du numéro de page actuel et du nombre d'éléments par page, les autres données ne changeront pas. Si vous effectuez plusieurs demandes de ce type, vous devez définir à plusieurs reprises ces paramètres inchangés, ce qui est sans aucun doute un gaspillage de ressources.
Donc cette fonction xhr a déjà considéré cette fonction. En prenant l'exemple de la pagination, on peut initialiser un objet xhr lorsque la page est chargée et l'enregistrer sous la variable a1 Lorsqu'une demande de tournage de page est initiée, aucun autre paramètre. ont changé, mais le pageNumber a changé. À ce stade, vous pouvez appeler la méthode setData de xhr pour modifier le pageNumber.
Remarque : Le paramètre de setData est également un objet.
a1.data = {…};
Pas seulement les données, vous pouvez apporter davantage de modifications à l'objet xhr instancié a1, comme changer l'URL, changer la fonction de réussite, GET en POST, synchrone en asynchrone... Après la modification, appelez à nouveau a1.send() méthode, il relancera la demande en fonction de vos paramètres.
Bien sûr, s'il s'agit d'une autre requête ajax qui n'a aucun rapport, il n'est pas nécessaire d'utiliser ce a1 prêt à l'emploi. Nous pouvons instancier un autre xhr et l'appeler a2 ou quelque chose comme ça.
Si vous n'êtes pas satisfait du nom xhr, alors vous devez le changer vous-même.
Une version compressée et cryptée est également fournie. La version non compressée fait environ 2 Ko avec les commentaires supprimés, et la version compressée fait 1,00 Ko.
Il doit y avoir quelques imperfections dans xhr. Si j'en trouve à l'avenir, je les corrigerai à temps. Si vous n'en êtes pas satisfait ou si cela est insuffisant, n'hésitez pas à nous faire part de suggestions d'amélioration.

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)

Sujets chauds



Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Selon les informations de ce site du 17 avril, TrendForce a récemment publié un rapport estimant que la demande pour les nouveaux produits de la plate-forme Blackwell de Nvidia est haussière et devrait entraîner une augmentation de la capacité totale de production d'emballages CoWoS de TSMC de plus de 150 % en 2024. Les nouveaux produits de la plate-forme Blackwell de NVIDIA comprennent des GPU de série B et des cartes accélératrices GB200 intégrant le propre processeur GraceArm de NVIDIA. TrendForce confirme que la chaîne d'approvisionnement est actuellement très optimiste quant au GB200. On estime que les livraisons en 2025 devraient dépasser le million d'unités, représentant 40 à 50 % des GPU haut de gamme de Nvidia. Nvidia prévoit de livrer des produits tels que le GB200 et le B100 au second semestre, mais le conditionnement des plaquettes en amont doit encore adopter des produits plus complexes.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Ce site Web a rapporté le 9 juillet que les processeurs de la série « Strix » à architecture AMD Zen5 auront deux solutions de packaging. Le plus petit StrixPoint utilisera le package FP8, tandis que le StrixHalo utilisera le package FP11. Source : source videocardz @Olrak29_ La dernière révélation est que la taille du boîtier FP11 de StrixHalo est de 37,5 mm x 45 mm (1 687 millimètres carrés), ce qui est la même que la taille du boîtier LGA-1700 des processeurs Intel AlderLake et RaptorLake. Le dernier APU Phoenix d'AMD utilise une solution de packaging FP8 d'une taille de 25*40 mm, ce qui signifie que le F de StrixHalo
