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

首頁 > 學院 > 開發(fā)設計 > 正文

play 集成 Ajax請求

2019-11-10 18:17:19
字體:
供稿:網(wǎng)友

10.12.1 集成jQuery#

      Play默認集成了jQuery庫,并將其存放于應用的public/javascripts目錄。框架對jQuery進行了封裝,提供#{jsAction /}標簽簡化了請求異步調(diào)用控制器中的Action方法,因此我們可以通過jQuery非常方便地處理Ajax請求。

      本節(jié)將以簡單的Ajax應用為例,介紹在Play框架中如何使用jQuery提供的Ajax支持。

10.12.2 使用#{jsAction /}#

      Play提供的#{jsAction /}標簽會返回一個Javascript函數(shù),該JavaScript函數(shù)由基于Action方法的URL連接和自由變量組成。它并不會自動執(zhí)行Ajax請求,而需要我們先手動對返回的URL進行配置。

      下面介紹Play應用的Ajax實例。首先在控制器Hotels中定義Action方法list,用于處理瀏覽器異步提交的請求。list方法定義完成后為其配制路由規(guī)則:

GET     /hotels/list        Hotels.list

      我們在客戶端中可以通過以下方式導入路由:

<script type="text/javascript">   var listAction = #{jsAction @list(':search', ':size', ':page') /}   $('#result').load(       listAction({search: 'x', size: '10', page: '1'}),        function() {           $('#content').CSS('visibility', 'visible')       }   )</script>

      在這個例子中,我們向Hotels控制器中的list方法發(fā)送請求,請求中包含search,size和page三個參數(shù)。之后將請求保存在listAction變量中,使用load函數(shù)通過jQuery處理該請求(這里處理的是HTTP GET請求)。以下就是所發(fā)送請求的具體URL:

GET /hotels/list?search=x&size=10&page=1

      以這種方式發(fā)送請求會返回HTML數(shù)據(jù)。當然,我們也可以在控制器中使用適當?shù)匿秩痉椒ǎ祷仄渌?#26684;式的數(shù)據(jù),比如renderJSON, renderxml或者直接使用XML的模版等。在客戶端接收到JSON或者XML數(shù)據(jù)后,可以通過jQuery進行格式轉(zhuǎn)換。如果讀者還想了解更多細節(jié)問題,可以查閱jQuery相關內(nèi)容。

      如果讀者需要使用POST請求,只需要將jQuery方法進行轉(zhuǎn)換即可:

$.post(listAction(), function(data) {  $('#result').html(data);});

10.12.3 使用#{jsRoute /}#

      Play提供的#{jsRoute /}標簽,可以幫助開發(fā)者更好地管理路由。#{jsRoute /}標簽的使用方法很簡單,并且與#{jsAction /}類似,但是不同的地方為#{jsRoute /}標簽返回的是一個對象。該對象包含基于服務端Action的URL,以及相應的HTTP方法(GET、POST等),具體范例如下所示。
<script type="text/javascript">    var updateUserRoute = #{jsRoute @Users.update(':id') /}    $.ajax({      url: updateUserRoute.url({id: userId}),      type: updateUserRoute.method,      data: 'user.name=Guillaume'    });</script>      使用#{jsRoute /}標簽所帶來的好處是顯而易見的,開發(fā)者只需要修改routes路由文件,就可以統(tǒng)一地改變HTTP方法,而不再需要一個一個查看和修改模板文件了
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿克苏市| 安西县| 海晏县| 南汇区| 神农架林区| 梁山县| 宿松县| 广灵县| 廊坊市| 庆阳市| 策勒县| 永仁县| 胶南市| 光山县| 蓝山县| 威信县| 塘沽区| 运城市| 龙海市| 鄂托克旗| 宁化县| 兰西县| 伊吾县| 宜州市| 永嘉县| 荥经县| 金湖县| 安仁县| 高阳县| 灯塔市| 岳阳市| 双柏县| 清涧县| 皋兰县| 永寿县| 利川市| 涞源县| 铜陵市| 清新县| 迁安市| 休宁县|