麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

play 集成 Ajax請(qǐng)求

2019-11-10 20:32:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

10.12.1 集成jQuery#

      Play默認(rèn)集成了jQuery庫(kù),并將其存放于應(yīng)用的public/javascripts目錄。框架對(duì)jQuery進(jìn)行了封裝,提供#{jsAction /}標(biāo)簽簡(jiǎn)化了請(qǐng)求異步調(diào)用控制器中的Action方法,因此我們可以通過(guò)jQuery非常方便地處理Ajax請(qǐng)求。

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

10.12.2 使用#{jsAction /}#

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

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

GET     /hotels/list        Hotels.list

      我們?cè)诳蛻舳酥锌梢酝ㄟ^(guò)以下方式導(dǎo)入路由:

<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>

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

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

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

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

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

10.12.3 使用#{jsRoute /}#

      Play提供的#{jsRoute /}標(biāo)簽,可以幫助開(kāi)發(fā)者更好地管理路由。#{jsRoute /}標(biāo)簽的使用方法很簡(jiǎn)單,并且與#{jsAction /}類(lèi)似,但是不同的地方為#{jsRoute /}標(biāo)簽返回的是一個(gè)對(duì)象。該對(duì)象包含基于服務(wù)端Action的URL,以及相應(yīng)的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 /}標(biāo)簽所帶來(lái)的好處是顯而易見(jiàn)的,開(kāi)發(fā)者只需要修改routes路由文件,就可以統(tǒng)一地改變HTTP方法,而不再需要一個(gè)一個(gè)查看和修改模板文件了
上一篇:斜率優(yōu)化

下一篇:1057. Stack (30)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 欧美黄色看| 欧美四级在线观看 | 午夜视频亚洲 | 性猛交ⅹxxx乱巴西 在线播放中文 | 久久精品亚洲一区二区三区观看模式 | 毛片视频在线免费观看 | 精品一区二区免费 | 久色网站| 久久线视频 | 国产成人精品免高潮在线观看 | 黄色片网站在线免费观看 | 97中文| 国内精品久久久久久久久久久久 | 国产一区二区视频精品 | 久草在线看片 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 免费看一级视频 | 激情宗合 | 在线中文字幕亚洲 | 久久精品视频8 | 精品99在线视频 | 精品一区二区三区免费毛片 | 国产理论视频在线观看 | 亚洲激情91 | 青青草成人影视 | 中文字幕精品久久 | 香蕉成人在线观看 | 欧美日韩免费观看视频 | 永久免费不卡在线观看黄网站 | 免费久久久久 | 国产一区二区视频精品 | 亚洲日本高清 | 午夜国产小视频 | 成人一级片毛片 | 色人阁在线视频 | 成人9禁啪啪无遮挡免费 | 久久久久久久久久久久久久久伊免 | 国产在线精品一区二区三区 | 国产免费一区二区三区网站免费 | 91久久久久久久 |