JavaScript_jqueryのjQueryライブラリでAJAXを操作する方法の説明
Java ソフトウェア開発では、SSH などのさまざまなフレームワークを介してバックグラウンドでコードをカプセル化し、Java コードの作成を容易にすることができます。たとえば、Struts や SpringMVC はプロセスをカプセル化し、フロント デスクから制御します。これを実現するにはいくつかの簡単な設定を行うだけで済みます。Spring はさまざまなオブジェクトの管理をカプセル化し、AOP プログラミングを提供するため、非常に容易になります。一方、Hibernate と IBatis は JDBC コードをカプセル化するため、反復的で複雑なコードを記述する必要はありません。毎回JDBCコード。
フロントデスクに関しては、ページ上の一部の効果や検証などのために、JavaScript 言語を使用して完成させますが、これは最も基本的なフロントデスク言語である Java コードにも似ていますが、JQuery は便利にフロントエンド コードの作成には、ブラウザの互換性の問題を解決する上で非常に大きな利点があり、これがフロントエンド コードを使用することが非常に重要である理由の 1 つです。
現在、ユーザーのニーズを満たすために、Ajax (Asynchronous Javascript XML) の非同期リフレッシュは比類のない役割を果たしています。以前は、Ajax 操作を記述するには、常に JDBC コードのようないくつかの必要な手順を実行する必要がありました。
AJAX - コア XMLHttpRequest オブジェクト。JQuery は Ajax 非同期操作もカプセル化します。一般的に使用されるメソッドをいくつか示します。 $.ajax、$.post、$.get、$.getJSON。
var configObj = { method //数据的提交方式:get和post url //数据的提交路劲 async //是否支持异步刷新,默认是true data //需要提交的数据 dataType //服务器返回数据的类型,例如xml,String,Json等 success //请求成功后的回调函数 error //请求失败后的回调函数 } $.ajax(configObj);//通过$.ajax函数进行调用。
さて、実際の例を見てみましょう。非同期削除の例を見てください:
フロントデスクに関しては、ページ上の一部の効果や検証などのために、JavaScript 言語を使用して完成させますが、これは最も基本的なフロントデスク言語である Java コードにも似ていますが、JQuery は便利にフロントエンド コードの作成には、ブラウザの互換性の問題を解決する上で非常に大きな利点があり、これがフロントエンド コードを使用することが非常に重要である理由の 1 つです。
現在、ユーザーのニーズを満たすために、Ajax (Asynchronous Javascript XML) の非同期リフレッシュは比類のない役割を果たしています。以前は、Ajax 操作を記述するには、常に JDBC コードのようないくつかの必要な手順を実行する必要がありました。
AJAX - コア XMLHttpRequest オブジェクト。JQuery は Ajax 非同期操作もカプセル化します。一般的に使用されるメソッドをいくつか示します。 $.ajax、$.post、$.get、$.getJSON。
$.ajax、これは JQuery が ajax をカプセル化するための最も基本的な手順です。この関数を使用することで、非同期通信のすべての機能を完了できます。つまり、このメソッドを使用すると、どのような状況でも非同期リフレッシュ操作を実行できます。ただしパラメータが多いので少し面倒なこともあります。よく使用されるパラメータを見てみましょう:
var configObj = { method //数据的提交方式:get和post url //数据的提交路劲 async //是否支持异步刷新,默认是true data //需要提交的数据 dataType //服务器返回数据的类型,例如xml,String,Json等 success //请求成功后的回调函数 error //请求失败后的回调函数 } $.ajax(configObj);//通过$.ajax函数进行调用。
$.post,这个函数其实就是对$.ajax进行了更进一步的封装,减少了参数,简化了操作,但是运用的范围更小了。$.post简化了数据提交方式,只能采用POST方式提交。只能是异步访问服务器,不能同步访问,不能进行错误处理。在满足这些情况下,我们可以使用这个函数来方便我们的编程,它的主要几个参数,像method,async等进行了默认设置,我们不可以改变的。例子不再介绍。
url:发送请求地址。
data:待发送 Key/value 参数。
callback:发送成功时回调函数。
type:返回内容格式,xml, html, script, json, text,_default。
$.get,和$.post一样,这个函数是对get方法的提交数据进行封装,只能使用在get提交数据解决异步刷新的方式上,使用方式和上边的也差不多。这里不再演示。
$.getJSON,这个是进一步的封装,也就是对返回数据类型为Json进行操作。里边就三个参数,需要我们设置,非常简单:url,[data],[callback]。
其实会了$.ajax方法,其它的就都会使用了,都是一样的,其实非常简单。
但是这里还有一个问题,比较麻烦,就是如果页面数据量比较大,该怎么办呢?在常规表单的处理中,我们使用框架Struts2可以通过域驱动模式进行自动获取封装,那么通过ajax,如何进行封装呢?这里JQuery有一个插件,Jquery Form,通过引入此js文件,我们可以模仿表单Form来支持Struts2的域驱动模式,进行自动数据的封装。用法和$.ajax类似,看一下实际的例子,这里写一个保存用户的前台代码:
<span style="font-size:18px;"> $(function(){ var options = { beforeSubmit : function() {//处理以前需要做的功能 $("tipMsg").text("数据正在保存,请稍候..."); $("#insertBtn").attr("disabled", true); }, success : function(result) {//返回成功以后需要的回调函数 if ( result.success ) { $("#tipMsg").text("机构保存成功"); //这里是对应的一棵树,后边会介绍到, // 控制树形组件,增加新的节点 var tree = window.parent.treeFrame.tree; tree.insertNewChild("${org.id}", result.id, result.name); } else { $("#tipMsg").text("机构保存失败"); } // 启用保存按钮 $("#insertBtn").attr("disabled", false); }, clearForm : true }; $('#orgForm').ajaxForm(options); //通过Jquery.Form中的ajaxForm方法进行提交 }); </span>
这样我们就不用再进行数据data的封装处理,大大简化了我们ajax的操作这样异步刷新的操作。综上为JQuery中ajax的操作,感觉使用多了,和form表单的处理还是非常相似的,只不过实现的功能不一样罢了。学习编程,其实就是学习对数据的流转处理,如何从前台获取,传输到服务器进行相应的处理,然后返回,进行相关的显示,把这个流程通过一些技术实现,就完成了软件的开发,感觉还是非常有意思的。
利用 jQuery 简化 Ajax 开发
Ajax 并不是一种语言,它只是几种旧技术如 JavaScript 和 XML 以及 DOM 的综合应用,全称为 Asynchronous JavaScript and XML,即 异步 JavaScript 和 XML ,它能够在页面不刷新的前提下和服务器进行异步数据交互,如果运用得当,它能够很好的提高用户体验,还能节省带宽、降低服务器压力。作为一个优秀的 JavaScript 框架,jQuery 同样也提供了很多方法来处理 Ajax 的相关操作。
利用 Ajax 获取异步数据
传统 Ajax 一般步骤为:
- 创建 XMLHttpRequest(需兼容各种浏览器)。
- 向服务器发送 XMLHttpRequest 请求。
- 监测 XMLHttpRequest 的 onreadystatechange 事件。
- 判断服务端是否响应完成及响应结果是否正常。
- 获取 Ajax 从服务端返回的结果。
例如用 Ajax 获取服务器上的当前时间,示例代码如下:
<html> <head> <title>Traditional Ajax</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> function getDateTime() { var xmlHttp; if (window.XMLHttpRequest) { // For IE7+, Firefox, Chrome, Opera, Safari xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { // For IE6, IE5 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { document.getElementById("timediv").innerHTML = "现在时间" + xmlHttp.responseText; } } xmlHttp.open("GET", "ajax.php", true); xmlHttp.send(null); } </script> </head> <body> <div id="timediv">现在时间</div> <br /><input type="button" value="测试传统的 Ajax" onClick="getDateTime()" /> </body> </html>
服务端代码为:
<?php //服务器端为格林尼治标准时间,这里需设置为中国所在时区 date_default_timezone_set("PRC"); echo date("Y-m-d H:i:s"); ?>
可以看到,仅仅实现如此简单的功能,代码却如此冗长,特别是创建 XMLHttpRequest 的时候,还要兼容多种浏览器,另外还要监测 XMLHttpRequest 的 onreadystatechange 时间,以及返回的 readyState 和 status 状态,稍显麻烦。
jQuery 的 Ajax 方法,如果将上面的代码改写为 jQuery 的 Ajax 方法,代码如下:
<html> <head> <title>Traditional Ajax</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js?ver=1.4.4"></script> <script type="text/javascript"> function getDateTime() { $("#timediv").load("ajax.php"); } </script> </head> <body> <div id="timediv"></div> <br /><input type="button" value="测试 jQuery 的 Ajax" onClick="getDateTime()" /> </body> </html>
可以看到,jQuery 的 Ajax 方法,主要代码只有一行 $("#timediv").load("ajax.php");,相当之简单,而且绝对兼容各种主流浏览器。从这个例子可以看出,jQuery 大大的简化了 Ajax 的编码方式。
GET 还是 POST ?
上面的例子中的 load 函数固然方便,但是我们还是经常要指定 jQuery 到底是用 GET 方法还是 POST 方法,使用方法如下:
$.get(url, [data], [callback]) $.post(url, [data], [callback], [type])
GET 和 POST 的使用方法基本相同,参数 data 为向服务器发送的数据,callback 为回调函数,type 用来指定服务器返回的数据类型,如纯文本、XML、JSON 等。
下面来看具体例子:
<html> <head> <title>jQuery Ajax (get and post)</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js?ver=1.4.4"></script> <script type="text/javascript"> $(document).ready(function() { // 为 GET 按钮添加事件 $("#getbtn").click(function() { $.get("ajaxpage.php", {username:$("#username").val()}, function(data) { $("#ajaxdata").html(data); // 将服务端返回的数据填充到 P 标签中 }); }); // 为 POST 按钮添加事件 $("#postbtn").click(function() { $.post("ajaxpage.php", {username:$("#username").val()}, function(data) { $("#ajaxdata").html(data); // 将服务端返回的数据填充到 P 标签中 }); }); }); </script> </head> <body> 你的大名:<input type="text" id="username" /><br /> <input type="button" id="getbtn" value="GET 方法" /><br /> <input type="button" id="postbtn" value="POST 方法" /> <p id="ajaxdata"></p> </body> </html>
服务端代码为:
<?php // 服务器端为格林尼治标准时间,这里需设置为中国所在时区 date_default_timezone_set("PRC"); $username = ""; $ajaxMethod = ""; // 判断是 GET 还是 POST if(isset($_GET["username"])) { $username = $_GET["username"]; $ajaxMethod = "GET"; } else { $username = $_POST["username"]; $ajaxMethod = "POST"; }
echo "你好," . $username . ", 现在时间为:" . date("Y-m-d H:i:s"). ",此数据来源于 " . $ajaxMethod . " Ajax";
?>
可以看到,jQuery Ajax 的 GET 方法 和 POST 方法,使用起来依然相当之方便。
控制 Ajax
GET 和 POST 方法以及前面提到的 load 方法,使用起来虽然十分实用,但是某些时候却过于简单,很多时候我们都需要更多的控制 Ajax 的细节,jQuery 同样提供了一些方法来控制 Ajax 的细节,主要通过 $.ajax(options) 方法来实现,请看下面的代码片段:
<script type="text/javascript"> $(document).ready(function() { // 为 GET 按钮添加事件 $("#getbtn").click(function() { $.ajax({ type: "GET", url: "ajaxpage.php", data: {username:$("#username").val()}, timeout: 3000, error: function() { alert("error!"); }, success: function(data) { // 回调函数,将返回的数据添加到 P 标签中 $("#ajaxdata").html(data); } }); }); // 为 POST 按钮添加事件 $("#postbtn").click(function() { $.ajax({ type: "POST", // Ajax 提交方式 url: "ajaxpage.php", // 提交页 data: {username:$("#username").val()}, // 要提交的数据 timeout: 3000, // 超时设置,单位为毫秒 error: function() { // Ajax 发生错误时 alert("error!"); }, success: function(data) { // 回调函数,将返回的数据添加到 P 标签中 $("#ajaxdata").html(data); } }); }); }); </script>
上面例子中,$.ajax(options) 中的 options 条目是可选的,并不是每个参数都要设置。对于有些参数而言,例如 timeout 和 error 在某个项目中是固定不变的,那么就没必要在每个 Ajax 代码中都写,可以用 jQuery 提供的全局 Ajax 设置的方法来设置一下,设置方法如下:
<script type="text/javascript"> $(document).ready(function() { // 全局 Ajax 设定,这里的设置将对本页面所有 Ajax 方法适用 $.ajaxSetup({ url: "ajaxpage.php", // Ajax 提交页 timeout: 3000, // 超时设置,单位为毫秒 error: function() { // Ajax 发生错误时 alert("error!"); } }); // 为 GET 按钮添加事件 $("#getbtn").click(function() { $.ajax({ type: "GET", data: {username:$("#username").val()}, success: function(data) { // 回调函数,将返回的数据添加到 P 标签中 $("#ajaxdata").html(data); } }); }); // 为 POST 按钮添加事件 $("#postbtn").click(function() { $.ajax({ type: "POST", // Ajax 提交方式 data: {username:$("#username").val()}, // 要提交的数据 success: function(data) { // 回调函数,将返回的数据添加到 P 标签中 $("#ajaxdata").html(data); } }); }); }); </script>
上面例子中,在全局设定里面设置好了的参数,在整个页面中都会生效,这个功能可以大大的减少重复的代码。
以上这些就是 jQuery Ajax 的几种简单使用方式,而且上面的几个例子中服务器返回的数据都是纯文本,如果是在复杂的 Ajax 应用中,可能就需要用到 XML 或者 JSON 了。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









jQueryでPUTリクエストメソッドを使用するにはどうすればよいですか? jQuery で PUT リクエストを送信する方法は、他のタイプのリクエストを送信する方法と似ていますが、いくつかの詳細とパラメータ設定に注意する必要があります。 PUT リクエストは通常、データベース内のデータの更新やサーバー上のファイルの更新など、リソースを更新するために使用されます。以下は、jQuery の PUT リクエスト メソッドを使用した具体的なコード例です。まず、jQuery ライブラリ ファイルが含まれていることを確認してから、$.ajax({u

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

タイトル: jQuery ヒント: ページ上のすべての a タグのテキストをすばやく変更する Web 開発では、ページ上の要素を変更したり操作したりする必要がよくあります。 jQuery を使用する場合、ページ内のすべての a タグのテキスト コンテンツを一度に変更する必要がある場合があります。これにより、時間と労力を節約できます。以下では、jQuery を使用してページ上のすべての a タグのテキストをすばやく変更する方法と、具体的なコード例を紹介します。まず、jQuery ライブラリ ファイルを導入し、次のコードがページに導入されていることを確認する必要があります: <

タイトル: jQuery を使用して、すべての a タグのテキスト コンテンツを変更します。 jQuery は、DOM 操作を処理するために広く使用されている人気のある JavaScript ライブラリです。 Web 開発では、ページ上のリンク タグ (タグ) のテキスト コンテンツを変更する必要が生じることがよくあります。この記事では、この目標を達成するために jQuery を使用する方法を説明し、具体的なコード例を示します。まず、jQuery ライブラリをページに導入する必要があります。 HTML ファイルに次のコードを追加します。

PHP と Ajax を使用してオートコンプリート候補エンジンを構築します。 サーバー側スクリプト: Ajax リクエストを処理し、候補を返します (autocomplete.php)。クライアント スクリプト: Ajax リクエストを送信し、提案を表示します (autocomplete.js)。実際のケース: HTML ページにスクリプトを組み込み、検索入力要素の識別子を指定します。

Ajax (非同期 JavaScript および XML) を使用すると、ページをリロードせずに動的コンテンツを追加できます。 PHP と Ajax を使用すると、製品リストを動的にロードできます。HTML はコンテナ要素を含むページを作成し、Ajax リクエストはロード後に要素にデータを追加します。 JavaScript は Ajax を使用して XMLHttpRequest を通じてサーバーにリクエストを送信し、サーバーから JSON 形式で商品データを取得します。 PHP は MySQL を使用してデータベースから製品データをクエリし、それを JSON 形式にエンコードします。 JavaScript は JSON データを解析し、ページ コンテナーに表示します。ボタンをクリックすると、製品リストをロードするための Ajax リクエストがトリガーされます。

jQuery 要素に特定の属性があるかどうかを確認するにはどうすればよいですか? jQuery を使用して DOM 要素を操作する場合、要素に特定の属性があるかどうかを判断する必要がある状況がよく発生します。この場合、jQuery が提供するメソッドを使用してこの関数を簡単に実装できます。以下では、jQuery 要素が特定の属性を持つかどうかを判断するために一般的に使用される 2 つの方法を紹介し、具体的なコード例を添付します。方法 1: attr() メソッドと typeof 演算子 // を使用して、要素に特定の属性があるかどうかを判断します

Ajax セキュリティを向上させるには、いくつかの方法があります。 CSRF 保護: トークンを生成してクライアントに送信し、それを検証リクエストのサーバー側に追加します。 XSS 保護: htmlspecialchars() を使用して入力をフィルタリングし、悪意のあるスクリプトの挿入を防ぎます。 Content-Security-Policy ヘッダー: 悪意のあるリソースの読み込みを制限し、スクリプトとスタイル シートの読み込みを許可するソースを指定します。サーバー側の入力を検証する: Ajax リクエストから受け取った入力を検証して、攻撃者による入力の脆弱性の悪用を防ぎます。安全な Ajax ライブラリを使用する: jQuery などのライブラリによって提供される自動 CSRF 保護モジュールを利用します。
