Home Web Front-end JS Tutorial Detailed explanation of jQuery Ajax asynchronous processing of Json data_jquery

Detailed explanation of jQuery Ajax asynchronous processing of Json data_jquery

May 16, 2016 pm 05:17 PM
ajax jquery json

First let’s look at an official example
Use AJAX request to obtain JSON data and output the result:

Copy code Code As follows:

$("button").click(function(){
$.getJSON("demo_ajax_json.js",function(result){
$.each(result , function(i, field){
                                                                                                                                                                                       🎜>This function is an abbreviated Ajax function, equivalent to:



Copy code

The code is as follows:$.ajax({ url: url, data: data, success: callback,
dataType: json
});


Send Data to the server can be appended to the URL as a query string. If the value of the data parameter is an object (map), it is converted to a string and URL-encoded before being appended to the URL.
The return data passed to callback can be a JavaScript object or an array defined in a JSON structure, and is parsed using the $.parseJSON() method.
Load JSON data from test.js and display a name field data in the JSON data:



Copy the code

An asp.net instance
First give the json data to be transferred: [{"demoData":"This Is The JSON Data"}]
1, use ordinary aspx page
I think this method is the easiest to handle, look at the code below



Copy code

The code is as follows:$.ajax({                           url: "Default.aspx", dataType: "json", success: function (data) {
                                                                     },
                                                                                                                                                                                                  error: function (XMLHttpRequest, textStatus, errorThrown) {
                                                                                                                                                                                                                                                                               });


Here is the code for transmitting data in the background
Copy the code The code is as follows:

Response. Clear();
Response.Write("[{"demoData":"This Is The JSON Data"}]");
Response.Flush();
Response.End();

This processing method directly parses the passed data into json data, which means that the front-end js code here may directly parse the data into json object data instead of string data, such as data [0].demoData, this json object data is used directly here
2, and webservice (asmx) is used to process
This processing method will not treat the passed data as json object data, but Processed as a string, the following code
Copy the code The code is as follows:

$.ajax ({ 
type: "post", 
url: "JqueryCSMethodForm.asmx/GetDemoData", 
dataType: "json",/*This sentence can be used or not, it has no impact*/
contentType: "application/json; charset=utf-8", 
success: function (data) { 
$("input#showTime").val(eval('(' data.d ')')[0 ].demoData);
//There are two ways to convert data. The two processing methods have the same effect//$("input#showTime").val(eval(data.d)[0].demoData );
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown); Copy the code for the asmx method code




The code is as follows: [WebMethod] public static string GetDemoData() { return "[{"demoData":"This Is The JSON Data"}]";
}


This processing method here just passes The returned json data is processed as a string. This data needs to be eval processed so that it can become a real json object data.
Let’s take a look at the html template first:



Copy code
The code is as follows:

  <table id="datas" border="1" cellspacing="0" style="border-collapse: collapse">
                <tr>
                    <th>
                        订单ID</th>
                    <th>
                        客户ID</th>
                    <th>
                        雇员ID</th>
                    <th>
                        订购日期</th>
                    <th>
                        发货日期</th>
                    <th>
                        货主名称</th>
                    <th>
                        货主地址</th>
                    <th>
                        货主城市</th>
                    <th>
                        更多信息</th>
                </tr>
                <tr id="template">
                    <td id="OrderID">
                    </td>
                    <td id="CustomerID">
                    </td>
                    <td id="EmployeeID">
                    </td>
                    <td id="OrderDate">
                    </td>
                    <td id="ShippedDate">
                    </td>
                    <td id="ShippedName">
</td>
ity">
                                                                             <td id="more">
                                                                                      ​ What you must pay attention to is that everything inside The id attribute, this is a key. Let’s take a look at the AJAX request and data binding code




Copy the code

The code is as follows:
var data = msg.table;
$.each(data, function(i, n){
var row = $("#template").clone();
row.find("#OrderID").text(n.OrderID);
row.find(" #CustomerID").text(n.Customer ID);
                                                                                                                                                     (n. Order date));
if (n. Delivery date! == Undefined) row.find ("#shippeddate"). find("#ShippedName").text(n. Shipper name);
      row.find("#ShippedAddress").text(n. Shipper address);
     row.find("#ShippedCity"). text(n.Shipper city);
       row.find("#more").html("<a href=OrderInfo.aspx?id=" n.Order ID "&pageindex=" pageIndex "> More< /a>");                                                                                                                                                                                                      In the container of the template
});


This is the AJAX method of jQuery. The returned data is not complicated. It mainly explains how to display the data on the page according to the definition of the template. The first is this "var row = $("#template").clone();" first copy the template, and then row.find("#OrderID").text(n. order ID);, indicating that it is found For the tag with id=OrderID, set its innerText to the corresponding data. Of course, it can also be set to data in html format. Or convert the data into the required format through external functions, such as here row.find("#OrderDate").text(ChangeDate(n. Order Date)); It feels a bit like a server control doing template binding data.
All of these are placed in a static page, and data is only obtained from the background through the AJAX method. All html codes are as follows:
Copy code The code is as follows:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>test1</title>
    <script language="javascript" type="text/javascript" src="js/jquery-latest.pack.js"></script>
    <script language="javascript" type="text/javascript" src="js/PageDate.js"></script>
</head>
<body>
    <div>
         <div>
            <br />
            <input id="first" type="button" value=" << " /><input id="previous" type="button"
value=" < " /><input id="next" type="button" value=" >  " /><input id="last" type="button"
value=" >>  " />
             <span id="pageinfo"></span>
            <table id="datas" border="1" cellspacing="0" style="border-collapse: collapse">
                <tr>
                    <th>
                        订单ID</th>
                    <th>
                        客户ID</th>
                    <th>
                        雇员ID</th>
                    <th>
                        订购日期</th>
                    <th>
                        发货日期</th>
                    <th>
                        货主名称</th>
                    <th>
                        货主地址</th>
                    <th>
                        货主城市</th>
                    <th>
                        更多信息</th>
                </tr>
                <tr id="template">
                    <td id="OrderID">
                    </td>
                    <td id="CustomerID">
                    </td>
                    <td id="EmployeeID">
                    </td>
                    <td id="OrderDate">
                    </td>
                    <td id="ShippedDate">
                    </td>
                    <td id="ShippedName">
                    </td>
                    <td id="ShippedAddress">
                    </td>
                    <td id="ShippedCity">
                    </td>
                    <td id="more">
                    </td>
                </tr>
            </table>
        </div>
        <div id="load" style="left: 0px; position: absolute; top: 0px; background-color: red">
            LOADING....
        </div>
        <input type="hidden" id="pagecount" />
    </div>
</body>
</html>

PageData.js就是包括上面AJAX请求和绑定数据代码的js,整个页面连form都不用,这样做有什么好处呢。再看下面一个模板
复制代码 代码如下:

         <ul id="datas">
                <li id="template">
                    <span id="OrderID">
                        fsdfasdf
                    </span>
                    <span id="CustomerID">
                    </span>
                    <span id="EmployeeID">
                    </span>
                    <span id="OrderDate">
                    </span>
                    <span id="ShippedDate">
                    </span>
                    <span id="ShippedName">
                    </span>
                    <span id="ShippedAddress">
                    </span>
                    <span id="ShippedCity">
                    </span>
                    <span id="more">
                    </span>
                </li>
            </ul>

还 是要注意id属性。大家看到这里应该明白了,不管用什么样的表现形式,只要id属性相同,就可以把数据绑定到对应的位置。这样的话,我们这些做程序的就不 会因为美工的修改而修改代码了,而且美工也只要做出html就可以了,不需要为服务器控件做模板(不过我还没遇到过这样的美工,都是美工设计好了我来改成 服务器控件的模板)。
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Performance optimization tips for converting PHP arrays to JSON Performance optimization tips for converting PHP arrays to JSON May 04, 2024 pm 06:15 PM

Performance optimization tips for converting PHP arrays to JSON

How do annotations in the Jackson library control JSON serialization and deserialization? How do annotations in the Jackson library control JSON serialization and deserialization? May 06, 2024 pm 10:09 PM

How do annotations in the Jackson library control JSON serialization and deserialization?

How to get variables from PHP method using Ajax? How to get variables from PHP method using Ajax? Mar 09, 2024 pm 05:36 PM

How to get variables from PHP method using Ajax?

In-depth understanding of PHP: Implementation method of converting JSON Unicode to Chinese In-depth understanding of PHP: Implementation method of converting JSON Unicode to Chinese Mar 05, 2024 pm 02:48 PM

In-depth understanding of PHP: Implementation method of converting JSON Unicode to Chinese

PHP vs. Ajax: Solutions for creating dynamically loaded content PHP vs. Ajax: Solutions for creating dynamically loaded content Jun 06, 2024 pm 01:12 PM

PHP vs. Ajax: Solutions for creating dynamically loaded content

Quick tips for converting PHP arrays to JSON Quick tips for converting PHP arrays to JSON May 03, 2024 pm 06:33 PM

Quick tips for converting PHP arrays to JSON

Conquer the pinnacle of Java JSON processing: parse and create complex data Conquer the pinnacle of Java JSON processing: parse and create complex data Mar 09, 2024 am 09:13 AM

Conquer the pinnacle of Java JSON processing: parse and create complex data

PHP Tutorial: How to Convert JSON Unicode to Chinese Characters PHP Tutorial: How to Convert JSON Unicode to Chinese Characters Mar 05, 2024 pm 06:36 PM

PHP Tutorial: How to Convert JSON Unicode to Chinese Characters

See all articles