關於AJAX

来源:http://www.cnblogs.com/alternative/archive/2017/08/21/7406682.html
-Advertisement-
Play Games

AJAX = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML)。 Ajax作用:是用JavaScript向伺服器發送非同步請求,然後伺服器給出響應,然後以XML格式的文件返回給瀏覽器端! 非同步:當瀏覽器向伺服器發送請求的時候,不是整個頁面刷新, ...


AJAX = Asynchronous JavaScript and XML(非同步的 JavaScript 和 XML)。

Ajax作用:是用JavaScript向伺服器發送非同步請求,然後伺服器給出響應,然後以XML格式的文件返回給瀏覽器端!
  非同步:當瀏覽器向伺服器發送請求的時候,不是整個頁面刷新,而是局部刷新[局部信息發送請求]!
  同步:當瀏覽器向伺服器發送請求的時候,整個頁面都會刷新!

  XML:一種文件格式,現在用XML這種返回格式的數據比較少了,XML解析性能較差,而且比較消耗帶寬[],現在大多數都是在是使用JSON數據的返回格式!!

 

使原生js發送AJAX請求步驟:
  1).創建XMLHttpRequest對象
  2).給open方法設置請求參數[method,url]
  3).發送請求(send()方法)
  4.需要使用onreadystatechange回調函數監聽readyState這個屬性狀態變化!

 

案例Get請求:

  servlet向jsp發送信息:

response.getWriter().println("hello world");

  jsp頁面:

 1   <script type="text/javascript">
 2       window.onload = function(){
 3           var btn = document.getElementById("btn01");
 4               btn.onclick=function(){
 5               //1.創建XMLHttpRequest對象,我們使用這個對象完成Ajax請求!
 6               var xhr = new XMLHttpRequest();
 7               
 8               //2.通過open方法設置請求參數
 9               var method= "get";
10               var url = "${pageContext.request.contextPath}/AServlet";
11               xhr.open(method, url);
12               
13               //3.發送請求!
14               xhr.send();
15               //4.接收響應信息
16               xhr.onreadystatechange= function(){
17                   if(xhr.readyState == 4 && xhr.status == 200 ){
18                       var data = xhr.responseText;
19                       alert(data);
20                   }
21               }
22           }
23       }
24   </script>

 

案例POST請求:  

  

 1   <script type="text/javascript">
 2       window.onload = function(){
 3           var btn = document.getElementById("btn01");
 4               btn.onclick=function(){
 5               //1.創建XMLHttpRequest對象,我們使用這個對象完成Ajax請求!
 6               var xhr = new XMLHttpRequest();
 7               
 8               //2.通過open方法設置請求參數
 9               var method= "post";
10               var url = "${pageContext.request.contextPath}/AServlet";
11               xhr.open(method, url);
12               xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
13               //3.發送請求!
14               xhr.send("username=zhangsan&password=lisi");
15               //4.接收響應信息
16               xhr.onreadystatechange= function(){
17                   if(xhr.readyState == 4 && xhr.status == 200 ){
18                       var data = xhr.responseText;
19                       alert(data);
20                   }
21               }
22           }
23       }
24   </script>

 

JSON:JavaScript 對象表示法(JavaScript Object Notation)
  作用:JSON 是存儲和交換文本信息的語法
  優勢:JSON 比 XML 更小、更快,更易解析。


  json對象是用{}括起來的鍵值對結構:
    1.鍵和值之間用:分隔
    2.鍵值對之間用,分隔
    3.鍵必須是字元串類型,也就是說必須用""[雙引號]引起來!不能使用單引號,也不能不用引號!
    4.JSON值的數據類型:
      數字(整數或浮點數)
      字元串(在雙引號中)
      邏輯值(true 或 false)
      數組(在方括弧中)
      對象(在花括弧中)
      null
    註意點:JSON對象是用{}括起來的,而數組是用【】括起來的!

  JSON對象和JSON字元串之間的相互轉換:
    JSON對象轉換為JSON字元串:
    var jsonStr = JSON.stringify(json);
    JSON字元串轉換為JSON對象:
    var jsonObj = JSON.parse(jsonStr);

 

 1     //1將普通對象轉換為JSON字元串!
 2         Student  stu = new Student("張三",12);
 3         Gson gson = new Gson();
 4         
 5         String json = gson.toJson(stu);
 6         System.out.println(json);
 7         Student fromJson = gson.fromJson(json, Student.class);
 8         System.out.println(fromJson);
 9         
10         //2.把Map轉換成JSON字元串
11         Map<String,String> map = new HashMap();
12         map.put("hobby","籃球");
13         map.put("gender", "男");
14         String json2 = gson.toJson(map);
15         System.out.println(json2);
16         Map<String,String> fromJson = gson.fromJson(json2, Map.class);
17         System.out.println(fromJson);
18         
19         //3.將List轉換為JSON字元串
20         List<Student> list = new ArrayList<Student>();
21         list.add(new Student("劉德華", 53));
22         list.add(new Student("馮小剛",63));
23         
24         String json3 = gson.toJson(list);
25         
26         System.out.println(json3);
27         List<Map<String,Object>> fromJson = gson.fromJson(json3, List.class);
28         for(Map map:fromJson){
29             System.out.println(map.get("name"));
30         }    

 

通過jQuery實現AJAX
   使用get和getJSON都會有緩存問題,並且使用get方法不能傳送較多的數據。
  post方法不會有緩存的問題,所以我們開發時使用post方法較多。


  [1] post()方法
    $.post(url, [data], [callback], [type])
    參數:
      url:發送AJAX的請求地址,字元串。
      data:發送給伺服器的請求參數,JSON格式。
      callback:當前需要獲取伺服器發送的響應時,我們可以通過該回調函數。
      jQuery會將響應信息以回調函數的參數的形式返回
      type:響應信息的類型,字元串。一般兩個常用值text、json

  [2] get()方法
    get方法和post方法使用方式基本一致。

  [3] getJSON()方法
    getJSON(url, [data], [callback])
    getJSON方法和get方法類似,只不過該方法預設的響應類型為JSON,不需要再手動指定。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、查找字元位置函數: 2、提取子字元函數(雙位元組) 3、替換字元串 4、查詢字元串長度 5、比較字元函數 6、分割成數組函數 7、去除空格: 8、加空格函數 9、返回指定的字元或ascii 10、HTML代碼有關函數 11、字元大小寫轉換函數 12、資料庫相關函數 13、連接函數 ...
  • PHP內置的mail函數使用起來不夠方便,另外受其他語言的影響,博主更偏好面向對象的包管理模式,因此phpmailer成為了我用PHP發送郵件的首選,這裡分享給大家。 ...
  • 網上關於pexpect的介紹基本都類似於這樣http://blog.csdn.net/sdustliyang/article/details/23373485,但是並沒有關於下述問題的解釋 問題:可以ssh到主機,但是後面執行的命令無法生效 代碼如下: 可以看到ssh是成功連接的,但是ls /hom ...
  • Struts2.5 struts是開源框架。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。如果我們想混合使用Servlets和JSP的優點來建立可擴展的應用,struts是一個不錯的選擇。 Struts 是Apache軟體基金會(ASF)贊助的一個開源項目。它最 ...
  • 上面的代碼實現的只是簡單而繁瑣的一種,後面的代碼會一直重覆,因此並沒有寫下去,後面的是我看視頻附帶的代碼,我也附上,較我寫的完整一些 ...
  • 1 1、請求周期 2 url> 路由 > 函數或類 > 返回字元串或者模板語言? 3 4 Form表單提交: 5 提交 -> url > 函數或類中的方法 6 - .... 7 HttpResponse('....') 8 render(request,'index.html') 9 redirec ...
  • 簡史 官方文檔說的很清楚,商戶已有H5商城網站,用戶通過消息或掃描二維碼在微信內打開網頁時,可以調用微信支付完成下單購買的流程。 當然,最近微信支付平臺也加入了純H5支付,也就是說用戶可以在微信以外的手機瀏覽器請求微信支付的場景喚起微信支付。 當然,今天的主角是微信公眾號支付,其實也不一定非在公眾號 ...
  • 最近接手的 Apache HUE 項目性能出現了問題,線上經常出現響應時間過長或因為時間過長而無法服務等問題.老大讓我準備弄個性能分析工具,便於追蹤和分析平臺當前的瓶頸出現在哪裡. 那就搞起吧!先從代碼性能分析入手.本篇博客分享的也是代碼層面的性能分析. 之前用過的就有 插件. 這款插件主要可以用來 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...