Ajax
同步請求 :全局刷新的方式? -> synchronous請求 客戶端發一個請求,服務器響應之后你客戶端才能繼續后續操作,請求二響應完之后才能發送后續的請求,依次類推
有點:服務器負載較小,但是由于服務器相應的是整個頁面資源,容易造成資源重復加載浪費,服務器相應的數據沒有進行對應的選擇刷新 -> 局部刷新
異步請求:asynchronous你只要發,不管服務器有沒有給你響應,你依然可以繼續第二次請求的發送,這是一種異步的方式? 調用回調函數把響應返回給你
客戶端 ->異步引擎對象xmlHttpRequets(隊列結構,有個口進,有個口出,隊列里面存下請求,再一個一個把請求發給服務器) -> 服務器? 數據傳輸的載體,現在用的是xml數據格式的數據。
AJAX(Asynchronous Javascript And XML)翻譯成中文就是“異步Javascript和XML"。即使用Javascript語言與服務器進行異步交互,傳輸的數據為XML(當然,傳輸的數據不只是XML,現在基本都是json格式)。
特點:
- 與服務器異步交互
- 瀏覽器頁面局部刷新
- 排隊導致的服務器壓力過大也是其中的一個特點
java? 對象 -> json xml三個之間的轉換
Ajax的實現
1.原生版本??
2.第三方的原生的ajax封裝:jquery axios?
基于jquery對ajax的實現
1.回調函數的概念,不是手動調用的函數,寫事件函數時,其實括號內部寫的就是回調函數
。
。
。
。
。
。
。
。
axios.click(function (){})
加上Requetsbody表示他是一個數據了
post請求完畢
現在->get? 支持url傳值? 也支持內部自己寫data傳值
jquery提供的對ajax再次封裝的簡寫!
$("btn").click(fcuntion (){
?$.get("/test3/test1.do?name=lisi&age=23),function(rs){
? ? ? ? $("content").text(rs)};})
只適用于get
根據bid去查詢書籍
注入service 接收一個bid int id
其實調用了book.toString方法
數據想對象.屬性調用出來? 因為此時rs是一個字符串??
rs是后臺相應的一個字符串
下面這種方式才可以拿出
問題:把字符串轉換成一個js對象var obj= {}
使用parseJson? 把字符串{“k”:"v","k1":"v1'}轉換成js對象
但是對于后臺的拼接就會顯得特別麻煩?
后臺是得到一個java對象,前端需要得到對象的屬性,把字符串變成js對象{} 就是json
json就是帶有格式的一個字符串 非常類似于js的對象格式
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。
JSON是用字符串來表示Javascript對象,例如可以在Servlet中發送一個JSON格式的字符串給客戶端Javascript,Javascript可以執行這個字符串,得到一個Javascript對象。
Json語法
數據在名稱/值對中
數據由逗號分隔花括號{}
保存對象方括號[]
保存數組對象數組:[{},{},{}]
json的key必須使用雙引號引起
對象數組:
json就是用于跨平臺的數據傳遞
后端:java對象轉換為json? 有相應的jar包
前端:把字符串轉換為js對象 Json.parse(rs)? rs是一個字符串?
json -> 字符串 json.Stringfy
java后臺java對象與json的轉換
1.使用第三方的json的jar包:jackson(spring默認) fastjson(阿里提供) jsonlib
Spring使用jackson
1.導入依賴
然后SpringMvc幫你做下面的事
2.配合@ReponseBody把java對象轉換為json字符串
@RequestBody:把json字符串轉換為java對象
但是沒有postJson
更改首頁的原生寫法:
js動態加cur這個類選擇器? 但是我們的頁面時全局刷新
ajax應用
實現表單? 發起ajax請求? 數據不是放到域當中了? 使用js的DOM操作來動態操縱元素
調一下位置:
頁面一加載? 我們發起所謂的ajax請求
發起給請求
@("document").ready(function (){
})
@("searchBtn").get
一次性取出數據:
serializable? 序列化表單
得到data的字符串格式
data通過url傳了過去 就不管了
寫controller
響應的是list.do 返回的是Page對象? 需要一個ResponseBody
數據給到前臺 然后前臺渲染即可
java對象->map
js代碼循環實現數據渲染
完成下一頁
頁面刷新執行一次
實現情況:追加不行
點擊分類:實現頁碼復位
實現價格排序
?shiyongshi'yong