国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

黑馬程序員【兩種Ajax方法】

2019-11-15 00:16:53
字體:
來源:轉載
供稿:網友
黑馬程序員【兩種Ajax方法】

兩種Ajax方法

------- android培訓、java培訓、期待與您交流! ----------

Ajax是一種用于快速創建動態網頁的技術,他通過在后臺與服務器進行少量的數據交換,可以實現網頁的異步更新,不需要像傳統網頁那樣重新加載頁面也可以做到對網頁的某部分作出更新,現在這項技術已經被人們廣泛應用,而對于一些對Web的了解還不是很深入的初學者,Ajax依然帶著一層神秘的難懂的色彩,今天就在這里給大家以簡單的方式解讀一下Ajax的實現步驟和原理,并且給大家兩種實現Ajax的方法,js和jquery。

首先ajax其實就是js+xml的技術,前端的表現就是一段js代碼。要使用Ajax首先除了要發送請求的頁面wait,還要創建一個后綴名為.jsp的文件,用來接收Ajax請求,并且處理數據再返回當前頁面,那么我們為了方便閱讀,就先將這個頁面名稱定義為ajax.jsp。

有了一個這樣的頁面之后,我們要回到請求頁,相信學過網頁的同學對script標簽應該非常熟悉把,是的,接下來的代碼就是要書寫在script標簽中。大家應該知道我們網頁中是事件,如鼠標點擊事件,鼠標懸停事件,鍵盤起落事件等等,而發送Ajax請求就是要通過事件來完成,下面我們就用代碼來給大家建立一個最基本的Ajax請求:

        <script type="text/Javascript">    function showHint(val) {        var xmlhttp = new XMLHttPRequest();        var url = "ajax.jsp?q=" + val;        url = url + "&sid=" + Math.random();        xmlHttp.open("GET", url,true);        xmlHttp.send(null);        document.getElementById("sun").innerHTML = xmlHttp.responseText;    }</script>    </head>    <body>        <form>            <input type="text" name="tname" value="" />            <input type="button" name="btn" value="提交"                onclick=    showHint(tname.value);>        </form>        你提交的數據是:        <span id="sun"></span>    </body></html>

因為要對數據進行的操作很少,所以ajax.jsp頁面的代碼異常簡單:

  <body>    <% String name = request.getParameter("q");       out.print(name);    %>  </body></html>

只需要接受到發送過來的數據并且打回去就可以了,現在來說一說這段代碼的原理,XMLHttpRequest是一個現代瀏覽器都支持的對象,他用于后臺與服務器進行數據交互,那么首先我們就要創建出這樣一個對象,也就是var xmlhttp = new XMLHttpRequest();創建好這個對象,我們要通過這個對象向服務器發起請求,這兒樣就需要用到了他的open()和send()方法,這兩個方法都是向服務器發起請求,那么他們有什么區別呢?我么來通過一張表格簡單的看一下:

通過這樣表格,我們能看出最常用也最好用的方法應該是open(),因為與post想必,get更簡單也更快,但是在有些情況中,也需要使用post,例如:無法使用緩存文件(更新服務器上的文件或數據庫)和向服務器發送大量數據(POST 沒有數據量限制)。說完區別,我們再通過這張表格說一下open()的三個參數的問題,method不用說,和form表單一樣,是指定提交方式(get或post)。url是文件在服務器上的位置,這里的文件指的是ajax.jsp也就是Ajax在后臺處理數據的文件,一般通過相對路徑定位,大家可以發現上面的代碼是通過response的?方法,將指定的數據傳遞過去。async是指發起異步請求與否,當使用 async=true 時,請規定在響應處于 onreadystatechange 事件中的就緒狀態時執行的函數,不推薦async=false的用法,但是一些小型項目如上面的那個演示代碼,改成true或false都是相同的。

在將請求發往服務器后,通過后臺與服務武器進行交互,對數據進行一系列的操作,操作完成后的數據可以通過out.print()方法將數據輸出,在請求頁面可以通過xmlhttp.responseText取到數據,值得注意的一點就是,當你的數據需要作為XML對象進行解析是,請使用xmlhttp.responseXML屬性。

簡單的說了一下js方法發送Ajax請求,大家是不是已經有了一個初步的了解,并且可以應用到開發中了呢?其實我們強大的Jquery中,也封裝了關于Ajax的實現方法,在這里就不多做解釋,因為原理相差不多,直接上代碼,相信大家可以看的懂:

    <script type="text/javascript" src="jQuery1.11.1.js"></script>    <script type="text/javascript">    function sayHi(){        $.ajax({        cache: false,        type: "POST",        url:"ajax.jsp",        data:$('#frm').serialize(),            async: true,        error: function(request) {        alert("請求失敗!");        },        success: function(data) {        $("#d").html(data);            }        });        }    </script>  </head>  <body>    <form id="frm" >    <input type="text" name="tname" value=""/>    <input type="button" value="提交" onclick="sayHi();"/>    <div id="d"></div>    </form>  </body></html>

ajax.jsp頁面代碼:

  <body>    <%      String userName = request.getParameter("tname");      out.print(userName+"你好!");    %>  </body></html>

這樣就實現了通過Jquery方法發送Ajax請求,兩種方法沒有太大區別,憑個人喜好使用。


上一篇:自定義EL函數

下一篇:JAVA調用R

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大冶市| 屯门区| 张家港市| 延庆县| 西华县| 平顺县| 乌审旗| 都安| 遂昌县| 古丈县| 宝丰县| 新和县| 石景山区| 岑巩县| 得荣县| 桦南县| 丰宁| 商洛市| 徐闻县| 呼伦贝尔市| 江津市| 盘山县| 洪湖市| 新邵县| 比如县| 正定县| 绥棱县| 盘山县| 阳谷县| 璧山县| 蓬莱市| 平原县| 大城县| 社会| 阳春市| 芷江| 松江区| 汉川市| 玛曲县| 荔波县| 那坡县|