Maison interface Web js tutoriel jQuery+formdata crée des effets de progression du téléchargement (avec code d'étape)

jQuery+formdata crée des effets de progression du téléchargement (avec code d'étape)

Apr 26, 2018 am 11:20 AM
特效 calendrier

Cette fois, je vais vous apporter jQuery+formdata pour créer des effets de progression de téléchargement (avec des codes d'étape). Quelles sont les notes pour utiliser jQuery+formdata pour créer des effets de progression de téléchargement. Voici des cas pratiques. jetez un oeil.

Liste des problèmes

1. JQUERY.AJAX ne surveille pas l'événement ONPROGRESS de la progression du téléchargement.

2. XMLHTTPREQUEST (XHR) inter-domaines

Questions et réponses

1 JQUERY ne fournit pas d'interface pour l'événement ONPROGRESS, et l'objet XHR natif doit l'être. trouvé à partir d’autres interfaces.

jQuery.ajax() renvoie un objet jqXHR. jqXHR imite XHR (natif), mais n'imite pas toutes les méthodes et attributs qui implémentent XHR (tels que : .upload), même si jqXHR ajoute une méthode unique (telle que : .promise()). JqXHR n'est donc pas un surensemble de XHR.

//下面是截取jQ内部的源码,$.ajax();返回的就是这个jqXHR(伪造XMLHttpRequest)
// Fake xhr
 jqXHR = {
  readyState: 0,
Copier après la connexion

L'attribut upload de XHR pointe vers XMLHttpRequestUpload (IE10 est XMLHttpRequestEventTarget), et l'événement onprogress de cet objet peut surveiller la progression du téléchargement. Étant donné que jQ ne fournit pas d'API pour cette fonction, certaines méthodes de téléchargement de données de jQ utilisent XHR, afin que nous puissions trouver XHR à partir d'autres API. La liaison de l'événement onprogress avant que XHR envoie les données peut implémenter la fonction de progression du téléchargement.

J'ai trouvé deux propriétés liées à XHR à partir de la configuration du paramètre OPTIONS :

-XHR : le rappel crée un objet XMLHTTPREQUEST.

La valeur de retour de xhr() est XHR, qui est fournie à jQ, c'est-à-dire que ce XHR est utilisé pour envoyer des données. Nous pouvons créer une fonction de rappel via xhr pour l'écraser, renvoyer également XHR, mais lier l'événement onprogress ici.

//jQ源码
// Get a new xhr
var handle, i,
 xhr = s.xhr();//[回调]在这里,下面是open方法
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
if ( s.username ) {
 xhr.open( s.type, s.url, s.async, s.username, s.password );
} else {
 xhr.open( s.type, s.url, s.async );
}
Copier après la connexion

Nous devrions donc faire ceci :

$.ajax({
 //.....
 xhr: function() {
  var xhr = $.ajaxSettings.xhr();
  //绑定上传进度的回调函数
  xhr.upload.addEventListener('progress', progress, false);
  return xhr;//一定要返回,不然jQ没有XHR对象用了
 }
});
Copier après la connexion

- XHRFIELDS : Une paire de mappages "nom de fichier-valeur de fichier", utilisés pour définir des objets XHR natifs.

L'attribut xhrFields pointe vers le XHR créé en interne par jQ, et nous pouvons obtenir le XMLHttpRequest basé sur xhrFields. Étant donné que la valeur de xhrFields ne peut être qu'un objet json, elle ne peut pas être obtenue de la manière suivante.

//错误例子
$.ajax({
 //......
 xhrFields: {
  upload.onprogress: function() {
   //语法错误
  }
 }
});
Copier après la connexion

Nous pouvons utiliser l'événement onsendstart de XHR, comme suit :

$.ajax({
 //......
 xhrFields: {
  onsendstart: function() {
   //this是指向XHR
   this.upload.addEventListener('progress', progress, false);
  }
 }
});
Copier après la connexion

2. XMLHTTPREQUESTⅡ(XHR) prend en charge plusieurs domaines, mais nécessite une autorisation en arrière-plan.

//后台需发送头部验证
if($_REQUEST['cros']) {
 header("Access-Control-Allow-Origin:请求的域名");
}
Copier après la connexion

Selon l'interface fournie par le background, je dois ajouter un paramètre cros. Mais lorsque j'ai soumis ce paramètre avec le fichier, cela a provoqué une restriction inter-domaines. Enfin, mettez ce paramètre dans l'url.

Il s'avère que XHR a deux requêtes inter-domaines. La première est une demande de vérification. Le navigateur émet automatiquement une demande d'options basée sur l'adresse de destination de la demande. En cas de réussite, une demande de publication personnalisée peut être émise. Mettez donc les paramètres dans la requête de publication. La première requête n'a pas le paramètre cros, c'est-à-dire qu'elle ne peut pas passer.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment créer un bouton de lien de menu avec le plug-in jQuery EasyUI

Explication détaillée de l'utilisation du plug-in jqURL de JQuery

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment utiliser Vue pour implémenter des effets de fenêtre contextuelle Comment utiliser Vue pour implémenter des effets de fenêtre contextuelle Sep 22, 2023 am 09:40 AM

Comment utiliser Vue pour implémenter des effets de fenêtres contextuelles nécessite des exemples de code spécifiques. Ces dernières années, avec le développement d'applications Web, les effets de fenêtres contextuelles sont devenus l'une des méthodes d'interaction couramment utilisées par les développeurs. En tant que framework JavaScript populaire, Vue offre des fonctions riches et une facilité d'utilisation, et est très approprié pour implémenter des effets de fenêtres contextuelles. Cet article expliquera comment utiliser Vue pour implémenter des effets de fenêtre contextuelle et fournira des exemples de code spécifiques. Tout d'abord, nous devons créer un nouveau projet Vue à l'aide de l'outil CLI de Vue. extrémité ouverte

Comment utiliser Vue pour implémenter des effets de masque plein écran Comment utiliser Vue pour implémenter des effets de masque plein écran Sep 19, 2023 pm 04:14 PM

Comment utiliser Vue pour implémenter des effets de masquage plein écran. Dans le développement Web, nous rencontrons souvent des scénarios nécessitant un masquage plein écran, comme l'affichage d'une couche de masquage lors du chargement de données pour empêcher les utilisateurs d'effectuer d'autres opérations, ou dans certains scénarios spéciaux. Utilisez un calque de masque pour mettre en évidence un élément. Vue est un framework JavaScript populaire qui fournit des outils et des composants pratiques pour obtenir divers effets. Dans cet article, je vais présenter comment utiliser Vue pour obtenir l'effet de masquage plein écran et fournir quelques exemples de code spécifiques. Premièrement, nous

Comment utiliser Vue pour implémenter des effets de barre latérale Comment utiliser Vue pour implémenter des effets de barre latérale Sep 19, 2023 pm 02:00 PM

Comment utiliser Vue pour implémenter des effets de barre latérale Vue est un framework JavaScript populaire. Sa simplicité, sa facilité d'utilisation et sa flexibilité permettent aux développeurs de créer rapidement des applications interactives d'une seule page. Dans cet article, nous apprendrons comment utiliser Vue pour implémenter un effet de barre latérale commun et fournirons des exemples de code spécifiques pour nous aider à mieux comprendre. Créer un projet Vue Tout d'abord, nous devons créer un projet Vue. Vous pouvez utiliser la VueCLI (interface de ligne de commande) fournie par Vue, qui peut générer rapidement

Implémenter des effets de retournement de cartes dans les mini-programmes WeChat Implémenter des effets de retournement de cartes dans les mini-programmes WeChat Nov 21, 2023 am 10:55 AM

Implémentation d'effets de retournement de cartes dans les mini-programmes WeChat Dans les mini-programmes WeChat, la mise en œuvre d'effets de retournement de cartes est un effet d'animation courant qui peut améliorer l'expérience utilisateur et l'attractivité des interactions d'interface. Ce qui suit présentera en détail comment implémenter l'effet de retournement de carte dans l'applet WeChat et fournira des exemples de code pertinents. Tout d'abord, vous devez définir deux éléments de carte dans le fichier de mise en page du mini-programme, un pour afficher le contenu avant et un pour afficher le contenu arrière. L'exemple de code spécifique est le suivant : <!--index.wxml-. ->&l

HTML, CSS et jQuery : techniques pour obtenir des effets de pliage et d'agrandissement d'images HTML, CSS et jQuery : techniques pour obtenir des effets de pliage et d'agrandissement d'images Oct 24, 2023 am 11:05 AM

HTML, CSS et jQuery : Introduction aux techniques d'implémentation d'effets spéciaux de pliage et d'agrandissement d'images Dans la conception et le développement de sites Web, nous devons souvent implémenter des effets spéciaux dynamiques pour augmenter l'attractivité et l'interactivité de la page. Parmi eux, l’effet de pliage et de dépliage de l’image est une technique courante mais intéressante. Grâce à cet effet spécial, nous pouvons plier ou agrandir l'image sous l'action de l'utilisateur pour afficher plus de contenu ou de détails. Cet article expliquera comment utiliser HTML, CSS et jQuery pour obtenir cet effet, avec des exemples de code spécifiques. réaliser des pensées

Comment utiliser Vue pour implémenter les effets de la barre de progression Comment utiliser Vue pour implémenter les effets de la barre de progression Sep 19, 2023 am 09:22 AM

Comment utiliser Vue pour implémenter les effets de la barre de progression La barre de progression est un élément d'interface courant qui peut être utilisé pour afficher l'achèvement d'une tâche ou d'une opération. Dans le framework Vue, nous pouvons implémenter des effets spéciaux de la barre de progression via un code simple. Cet article expliquera comment utiliser Vue pour implémenter des effets de barre de progression et fournira des exemples de code spécifiques. Créer un composant Vue Tout d'abord, nous devons créer un composant Vue pour implémenter la fonction de barre de progression. Dans Vue, les composants sont réutilisables et peuvent être utilisés à plusieurs endroits. Créez un fichier appelé Pro

Étapes pour désactiver les effets de suivi de la souris dans Windows 10 Étapes pour désactiver les effets de suivi de la souris dans Windows 10 Dec 31, 2023 pm 09:53 PM

Lorsque nous utilisons le système Win10, nous pouvons effectuer de nombreux paramètres personnalisés, y compris les effets spéciaux du suivi de la souris. Cependant, de nombreux utilisateurs ne savent pas comment désactiver les effets spéciaux du suivi de la souris dans Win10. Pour cette raison, nous avons fourni des méthodes détaillées. Comment désactiver les effets de suivi de la souris dans Windows 10 : 1. Tout d'abord, faites un clic droit sur un espace vide du bureau, puis cliquez sur « Personnaliser ». 2. Cliquez ensuite sur « Thème » à gauche et sélectionnez « Curseur de la souris » à droite. 3. Après avoir entré les propriétés, vous pouvez voir et sélectionner « Options du pointeur ». 4. Faites ensuite défiler vers le bas pour voir la visibilité, et le √ est coché à ce moment. 5. Décochez, puis cliquez sur Appliquer et sur OK.

Comment utiliser Vue pour implémenter des effets spéciaux de lecteur vidéo Comment utiliser Vue pour implémenter des effets spéciaux de lecteur vidéo Sep 20, 2023 pm 03:43 PM

Comment utiliser Vue pour implémenter des effets spéciaux de lecteur vidéo Résumé : Cet article explique comment utiliser le framework Vue.js pour implémenter un lecteur vidéo avec divers effets spéciaux. Nous utiliserons les directives et composants Vue pour implémenter les boutons lecture/pause, les barres de progression, les commandes de volume et les fonctionnalités plein écran. Dans le même temps, nous ajouterons également des effets d'animation pour améliorer l'expérience utilisateur. Différents effets spéciaux seront présentés en détail ci-dessous, y compris des exemples de code. Effets des boutons lecture/pause : Il est très simple d'utiliser les instructions Vue pour implémenter les effets des boutons lecture/pause. d'abord,

See all articles