ホームページ  >  記事  >  ウェブフロントエンド  >  Jquery の Ajax 非同期問題に関するディスカッション

Jquery の Ajax 非同期問題に関するディスカッション

零到壹度
零到壹度オリジナル
2018-03-29 09:55:241191ブラウズ

この記事は主に Jquery の Ajax 非同期の問題に関する議論を共有するものであり、非常に参考になるものです。編集者をフォローして見てみましょう。

1. $.get(url, [data], [callback], [type]); 非同期2. [データ]、[コールバック]、[タイプ]);

非同期のみ可能 パラメータリスト:

URL:リクエストによってリクエストされたサーバー側のアドレス。

データ: サーバー側へのリクエストのデータ (キー = 値形式または JSON 形式にすることができます)。 コールバック: 正常に応答したサーバーの関数を示します。関数 (通常の成功のみが実行されずに実行を返します。)

.

$.ajax({ option1:value1,option2:value2... } )

一般的に使用されるオプションは次のとおりです:

非同期かどうか、デフォルトは真の非同期です。

type: リクエストメソッド、POST/GET; url: リクエストサーバーアドレス。 次に、サンプルのデモを行ってみましょう:

AjaxServle.java

package ajax;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//响应请求
		//返回参数会json类型的字符串,前端jquery会自动将字符串解析为json对象
		response.getWriter().write("{\"name\":\"Tom\",\"age\":18}");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

TestAjax.html

<!DOCTYPE html>
<html>
  <head>
    <title>Jquery的Ajax异同步</title>
    <meta name="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
    <script>
    
    	//Get异步响应
    	function fn1(){
	    	$.get(
	    		"/WEB/ajaxServlet", //访问的资源地址
	    		{"name":"zhangsan","age":22}, //请求服务器端的参数,可以是json格式 
	    		function(responseData) { //响应成功后执行的函数
					var str="name: "+responseData.name+"; age: "+responseData.age;
	    			document.getElementById("input1").value=str;
	    		}, 
	    		"json" //返回数据的格式
	    		)
    	}
    	
    	//Post异步响应
    	function fn2(){
    		$.post(
	    		"/WEB/ajaxServlet", //访问的资源地址
	    		{"name":"zhangsan","age":22}, //请求服务器端的参数,可以是json格式 
	    		function(responseData) { //响应成功后执行的函数
					var str="name: "+responseData.name+"; age: "+responseData.age;
	    			document.getElementById("input2").value=str;
	    		}, 
	    		"json" //返回数据的格式
	    		)
    	}
    	
    	//Ajax异步响应
    	function fn3(){
    		$.ajax(
    			{
    				url:"/WEB/ajaxServlet", 
    				async:true, // 异步
    				type:"POST", // 请求方式
					data:{"name":"lucy","age":18}, // 请求参数
					success:function(data){ // 请求成功执行函数
						document.getElementById("input3").value="Rose";
					},
					error:function(){
						alert("请求失败"); // 请求失败执行函数
					},
					dataType:"json"
    			}
    		)
    	}
    </script>
  </head>
  
  <body>
	<input type="button" value="Get异步响应" onclick="fn1()"><input type="text" id="input1">
	<br><br>
	<input type="button" value="Post异步响应" onclick="fn2()"><input type="text" id="input2">
	<br><br>
	<input type="button" value="Ajax异步响应" onclick="fn3()"><input type="text" id="input3">
  </body>
</html>

インスタンス効果 1: リクエストが成功したとき

例効果 2: fn3() の URL を「/WEB/ajaxServlet33」に変更して、リクエストが失敗したときに

以上がJquery の Ajax 非同期問題に関するディスカッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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