ユーザー名が存在するかどうかを確認するために ajax 設定 async を実装する方法

亚连
リリース: 2018-05-23 15:07:04
オリジナル
1423 人が閲覧しました

ここで、ユーザー名が存在するかどうかを確認するために ajax async を設定する実装方法をお届けします。今からそれを皆さんと共有し、皆さんの参考にしてください。

新しいユーザーを追加するときは、携帯電話番号が存在するかどうかを判断する必要があります。最初のアイデアは、テキストボックスに onmouseout イベントを設定するという非常に簡単な方法ですが、Google
ではあまり良くありません。

OK、フォームを送信するときに考えを変えて確認してください:

//检验手机号码是否存在
function checkRepeat(){
	var id = '${item.id}';
	var mobile = $("#mobile").val();
	//alert(id);
	if(id==null||id==''){
		$.ajax({
			url: '/admin/adminuser/ajaxCheckReapet.shtml?mobile='+mobile,
			type: 'GET',
			dataType: 'text',
			cache:false, 
		  async:false, 
			timeout: 5000,
			error: function(){alert('数据获取失败!');},
			success: function(msg){
				if("1"==msg){
					$("#spMobile").attr("style","display:block;color:red;");
					$("#hiddenMobile").attr("value","true");
				}else{
					$("#spMobile").attr("style","display:none;");
					$("#hiddenMobile").attr("value","false");
				}
				
			}
		});
		
	}
	return true;
}


function save(){
	if(checkSImg()&&checkRepeat()){
		var hiddenMobile = $("#hiddenMobile").val();
		//alert(hiddenMobile);
		if(hiddenMobile=='false'){
			if($("#form1").form("validate")){
				$("#form1").submit();
			}
			
		}
	}
}
ログイン後にコピー

そして、そのプロセスで非常に興味深いことを発見しました: hiddenMobile が false を返しても、フォームはまだ送信されています

ああ、混乱しています、また頭を使わなければなりません、FK

考えて考えて、考えて考えて、検索して検索して、突然、async のことを思い出しました。これまでこれまで使用したことがありませんでしたが、async を追加しました。 :false、それを消去して、もう一度デモしてみたところ、

cache:false、

async:false、

さて、問題を解決して詳しく調べてみましょう。また得られるものがあります。ご自身でご覧ください

この場合、ajax がリクエストを送信すると、サーバーが戻るのを待ちます。フロントデスクは、サーバーが正しい結果を返した場合にのみ成功が実行されるまで、ajax ブロックの背後でスクリプトを実行し続けます。つまり、この時点では 2 つのスレッドが実行され、1 つのスレッドは ajax ブロックがリクエストを送信した後、上記の ajax ブロックの背後にあるスクリプト (別のスレッド)

$.ajax({ 
     type:"POST", 
     url:"Venue.aspx?act=init", 
      dataType:"html", 
     success:function(result){  //function1()
       f1(); 
       f2(); 
    } 
     failure:function (result) { 
      alert('Failed'); 
     }, 
 } 
 function2();
ログイン後にコピー

この例では、ajax ブロックがリクエストを送信すると、function1() に留まり、サーバーからの戻りを待ちますが、同時に (この待機プロセス中に)、フロント デスクは function2() を実行します。つまり、この時点では 2 つのスレッドです。ここでは、それらを function1() と function2() と呼びます。

asyn が false に設定されている場合、ajax リクエストは同期です。つまり、この時点で ajax ブロックはリクエストを送信した後、function1() で待機し、function2() を実行しません。 ()部分が実行されます。

同期とは、JS コードが現在の AJAX にロードされるときに、ページ内のすべてのコードのロードが停止し、AJAX が完了するとページの一時停止されたアニメーションが解除されることを意味します。コード ページは引き続き実行され、アニメーションの一時停止状態は解除されます。

この AJAX コードの実行中に、他のコードを非同期的に実行できます。

jqueryのasync:false、この属性

上記は私が皆さんのためにまとめたものです。将来皆さんのお役に立てれば幸いです。

関連記事:

IEでAjax送信時のコードが文字化けする時の簡単な解決方法

Ajaxキャッシュを解決する5つの方法まとめ

パラメータが長すぎて送信できない問題をajaxで素早く解決正常に送信されました

以上がユーザー名が存在するかどうかを確認するために ajax 設定 async を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート