Home > Web Front-end > JS Tutorial > body text

Detailed explanation of jQuery Ajax asynchronous processing of Json data_jquery

WBOY
Release: 2016-05-16 17:17:24
Original
992 people have browsed it

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:

 
               
                   
                   
                   
                   
                   
                   
                   
                   
                   
               
               
                   
                   
                   
                   
                   
                   
ity">
                                                                             

                        订单ID

                        客户ID

                        雇员ID

                        订购日期

                        发货日期

                        货主名称

                        货主地址

                        货主城市

                        更多信息

                   

                   

                   

                   

                   


                                                                                      ​ 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(" 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:




    test1
   
   


   

         

           

            value=" < " /> value=" >>  " />
             
           
               
                   
                   
                   
                   
                   
                   
                   
                   
                   
               
               
                   
                   
                   
                   
                   
                   
                   
                   
                   
               
           

                        订单ID

                        客户ID

                        雇员ID

                        订购日期

                        发货日期

                        货主名称

                        货主地址

                        货主城市

                        更多信息

                   

                   

                   

                   

                   

                   

                   

                   

                   

       

       

            LOADING....
       

       
   




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

        

                   

  •                    
                            fsdfasdf
                       

                       
                       

                       
                       

                       
                       

                       
                       

                       
                       

                       
                       

                       
                       

                       
                       

                   

  •            


还 是要注意id属性。大家看到这里应该明白了,不管用什么样的表现形式,只要id属性相同,就可以把数据绑定到对应的位置。这样的话,我们这些做程序的就不 会因为美工的修改而修改代码了,而且美工也只要做出html就可以了,不需要为服务器控件做模板(不过我还没遇到过这样的美工,都是美工设计好了我来改成 服务器控件的模板)。
Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!