ホームページ ウェブフロントエンド jsチュートリアル jQuery + formdata によるアップロード進行状況エフェクトの作成 (ステップコード付き)

jQuery + formdata によるアップロード進行状況エフェクトの作成 (ステップコード付き)

Apr 26, 2018 am 11:20 AM
特殊効果 スケジュール

今回は、アップロード進行状況エフェクトを作成するための jQuery+formdata を紹介します (ステップコード付き)。jQuery+formdata を使用してアップロード進行状況エフェクトを作成する際の 注意事項 について説明します。実際のケースを見てみましょう。

問題リスト

1. JQUERY.AJAX はアップロードの進行状況を示す ONPROGRESS イベントを監視しません。

2. XMLHTTPREQUEST (XHR) クロスドメイン

質問と回答

1. JQUERY は ONPROGRESS イベントのインターフェイスを提供しないため、ネイティブ XHR オブジェクトは他のインターフェイスから見つける必要があります。

jQuery.ajax() は jqXHR オブジェクトを返します。 jqXHR は XHR (ネイティブ) を模倣しますが、jqXHR が独自のメソッド (.promise() など) を追加する場合でも、XHR を実装するすべてのメソッドと属性 (.upload など) を模倣するわけではありません。したがって、jqXHR は XHR のスーパーセットではありません。

//下面是截取jQ内部的源码,$.ajax();返回的就是这个jqXHR(伪造XMLHttpRequest)
// Fake xhr
 jqXHR = {
  readyState: 0,
ログイン後にコピー
XHRのupload属性はXMLHttpRequestUpload(IE10はXMLHttpRequestEventTarget)を指しており、このオブジェクトのonprogressイベントでアップロードの進行状況を監視することができます。 jQ はこの関数の API を提供していないため、jQ の一部のデータ アップロード メソッドは XHR を使用するため、他の API から XHR を見つけることができます。 XHR がデータを送信する前に onprogress イベントをバインドすると、アップロード進行状況関数を実装できます。

OPTIONS パラメーター設定から XHR に関連する 2 つのプロパティを見つけました:

-XHR: コールバックは XMLHTTPREQUEST オブジェクトを作成します。

xhr() の戻り値は XHR であり、jQ が使用するために提供されます。つまり、この XHR はデータの送信に使用されます。 xhr を介して

コールバック関数を作成してオーバーライドすることもできます。また、XHR を返しますが、ここで onprogress イベントをバインドします。

//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 );
}
ログイン後にコピー
したがって、これを行う必要があります:

$.ajax({
 //.....
 xhr: function() {
  var xhr = $.ajaxSettings.xhr();
  //绑定上传进度的回调函数
  xhr.upload.addEventListener('progress', progress, false);
  return xhr;//一定要返回,不然jQ没有XHR对象用了
 }
});
ログイン後にコピー
- XHRFIELDS: ネイティブ XHR オブジェクトを設定するために使用される、「ファイル名とファイル値」のペアで構成されるマッピング。

xhrFields 属性は、jQ によって内部的に作成された XHR を指し、xhrFields に基づいて XMLHttpRequest を取得できます。 xhrFields の値は json オブジェクトしか取り得ないため、以下の方法では取得できません。

//错误例子
$.ajax({
 //......
 xhrFields: {
  upload.onprogress: function() {
   //语法错误
  }
 }
});
ログイン後にコピー
XHR の onsendstart イベントを次のように使用できます:

$.ajax({
 //......
 xhrFields: {
  onsendstart: function() {
   //this是指向XHR
   this.upload.addEventListener('progress', progress, false);
  }
 }
});
ログイン後にコピー
2. XMLHTTPREQUESTⅡ(XHR) はクロスドメインをサポートしますが、バックグラウンド権限が必要です。

//后台需发送头部验证
if($_REQUEST['cros']) {
 header("Access-Control-Allow-Origin:请求的域名");
}
ログイン後にコピー
背景によって提供されるインターフェイスによると、パラメータ cro を追加する必要があります。しかし、このパラメータをファイルとともに送信すると、クロスドメインの制限を求めるプロンプトが表示されました。最後に、このパラメータを URL に入力します。

XHR には 2 つのクロスドメイン リクエストがあることがわかりました。1 つは、リクエストの宛先アドレスに基づいて、ブラウザが自動的にオプション リクエストを発行することです。合格すると、カスタマイズされた

投稿リクエスト を発行できます。したがって、post リクエストにパラメータを入力します。最初のリクエストには cro パラメータがありません。つまり、渡すことができません。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jQuery EasyUI プラグインを使用してメニュー リンク ボタンを作成する方法

JQuery の jqURL プラグインの使用方法の詳細な説明

以上がjQuery + formdata によるアップロード進行状況エフェクトの作成 (ステップコード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue を使用してポップアップ ウィンドウ効果を実装する方法 Vue を使用してポップアップ ウィンドウ効果を実装する方法 Sep 22, 2023 am 09:40 AM

Vue を使用してポップアップ ウィンドウ効果を実装する方法には、特定のコード サンプルが必要です。近年、Web アプリケーションの開発に伴い、ポップアップ ウィンドウ効果は開発者の間で一般的に使用される対話方法の 1 つになりました。人気のある JavaScript フレームワークとして、Vue は豊富な機能と使いやすさを提供し、ポップアップ ウィンドウ効果の実装に非常に適しています。この記事では、Vue を使用してポップアップ ウィンドウ効果を実装する方法を紹介し、具体的なコード例を示します。まず、Vue の CLI ツールを使用して新しい Vue プロジェクトを作成する必要があります。オープンエンド

Vue を使用して全画面マスク効果を実装する方法 Vue を使用して全画面マスク効果を実装する方法 Sep 19, 2023 pm 04:14 PM

Vue を使用して全画面マスキング効果を実装する方法 Web 開発では、データのロード時にマスキング レイヤーを表示してユーザーが他の操作を実行できないようにするなど、全画面マスキングが必要なシナリオや、一部の特殊なシナリオによく遭遇します。マスクレイヤーを使用して要素を強調表示します。 Vue は、さまざまな効果を実現する便利なツールとコンポーネントを提供する人気の JavaScript フレームワークです。この記事では、Vue を使用して全画面マスクの効果を実現する方法と、いくつかの具体的なコード例を紹介します。まず、私たちは、

Vue を使用してサイドバー効果を実装する方法 Vue を使用してサイドバー効果を実装する方法 Sep 19, 2023 pm 02:00 PM

Vue を使用してサイドバー効果を実装する方法 Vue は人気のある JavaScript フレームワークであり、そのシンプルさ、使いやすさ、柔軟性により、開発者はインタラクティブな単一ページ アプリケーションを迅速に構築できます。この記事では、Vue を使用して一般的なサイドバー効果を実装する方法を学び、理解を深めるのに役立つ具体的なコード例を示します。 Vue プロジェクトの作成 まず、Vue プロジェクトを作成する必要があります。 Vue が提供する VueCLI (コマンド ライン インターフェイス) を使用できます。

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: <!--index.wxml- ->&l

HTML、CSS、jQuery:画像の折り畳み・拡大効果を実現するテクニック HTML、CSS、jQuery:画像の折り畳み・拡大効果を実現するテクニック Oct 24, 2023 am 11:05 AM

HTML、CSS、および jQuery: 画像の折りたたみと展開の特殊効果を実装するためのテクニックの紹介 Web デザインと開発では、ページの魅力とインタラクティブ性を高めるために、動的な特殊効果を実装する必要がよくあります。その中でも、画像の折りたたみと展開の効果は一般的ですが興味深いテクニックです。この特殊効果により、ユーザーの操作に応じて画像を折りたたんだり展開したりして、より多くのコンテンツや詳細を表示できます。この記事では、HTML、CSS、jQuery を使用してこの効果を実現する方法を、具体的なコード例とともに紹介します。思考を実現する

Vue を使用してプログレスバー効果を実装する方法 Vue を使用してプログレスバー効果を実装する方法 Sep 19, 2023 am 09:22 AM

Vue を使用してプログレス バー効果を実装する方法 プログレス バーは、タスクまたは操作の完了を表示するために使用できる一般的なインターフェイス要素です。 Vue フレームワークでは、単純なコードを通じてプログレス バーの特殊効果を実装できます。この記事では、Vue を使用してプログレス バー効果を実装する方法を紹介し、具体的なコード例を示します。 Vue コンポーネントの作成 まず、プログレスバー機能を実装するために Vue コンポーネントを作成する必要があります。 Vue では、コンポーネントは再利用可能であり、複数の場所で使用できます。 Pro という名前のファイルを作成します

Windows 10 でマウス トラック効果をオフにする手順 Windows 10 でマウス トラック効果をオフにする手順 Dec 31, 2023 pm 09:53 PM

win10 システムを使用すると、マウス トラックの特殊効果を含む多くの個人設定を行うことができますが、win10 でマウス トラックの特殊効果をオフにする方法がわからないユーザーも多いため、詳細な方法を提供しました。 Windows 10 でマウス トラック効果をオフにする方法: 1. まず、デスクトップの空白スペースを右クリックし、[個人用設定] をクリックします。 2. 次に、左側の「テーマ」をクリックし、右側の「マウスカーソル」を選択します。 3. プロパティを入力すると、「ポインター オプション」が表示され、選択できるようになります。 4. 次に、下にスクロールして可視性を確認します。この時点では √ がチェックされています。 5. チェックを外して、「適用」をクリックし、「OK」をクリックします。

Vue を使用してビデオ プレーヤーの特殊効果を実装する方法 Vue を使用してビデオ プレーヤーの特殊効果を実装する方法 Sep 20, 2023 pm 03:43 PM

Vue を使用してビデオ プレーヤーの特殊効果を実装する方法 概要: この記事では、Vue.js フレームワークを使用して、さまざまな特殊効果を持つビデオ プレーヤーを実装する方法を紹介します。 Vue ディレクティブとコンポーネントを使用して、再生/一時停止ボタン、プログレス バー、ボリューム コントロール、および全画面機能を実装します。同時に、ユーザーエクスペリエンスを向上させるためにいくつかのアニメーション効果も追加します。さまざまな特殊効果については、コード例も含めて以下で詳しく紹介します。再生/一時停止ボタンの効果: Vue 命令を使用して再生/一時停止ボタンの効果を実装するのは非常に簡単です。初め、

See all articles