日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

gwt格式_活性GWT

發(fā)布時間:2023/12/3 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gwt格式_活性GWT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

gwt格式

介紹

在過去的4到5年中,React式編程的普及程度得到了極大的提高。 這可以告訴我們,React性應(yīng)用程序的用例現(xiàn)在比以往任何時候都有效。 后端系統(tǒng)上的壓力已經(jīng)增加,因此需要用最少的資源來處理這種壓力。 響應(yīng)式編程被認為是在減少資源消耗的同時提高效率和吞吐量的一種方法。 React式編程的流行導(dǎo)致了大多數(shù)編程語言和平臺的React式擴展的發(fā)展:GWT也不例外。 在這篇文章中,我們將提供rxjava-gwt的用法示例,它是GWT的React式擴展。

關(guān)于rxjava-gwt

rxjava-gwt是RxJava對GWT的改編,而不是某些人可能認為的RxJ的包裝器。 根據(jù)項目創(chuàng)建者Ignacio Baca的說法,將RxJava適配到GWT比包裝RxJ更有用,尤其是如果Rx代碼在客戶端和服務(wù)器之間共享時,因為在此行為是完全一樣的。 同樣,這引入了共享自定義運算符或Rx合成的可能性。

用例

從后端的角度來看,React式編程被視為提高效率和吞吐量,以最小的資源消耗實現(xiàn)請求的方法,但是前端呢? 好吧,我們知道JavaScript本質(zhì)上是異步的,并且回調(diào)/ Promises的用法很常見,那么React性又要添加什么呢? 首先,如果應(yīng)用程序正在調(diào)用外部數(shù)據(jù)源(例如HTTP請求,Websocket,服務(wù)器發(fā)送的事件),則可以通過將這些源轉(zhuǎn)換為流并在數(shù)據(jù)涌入時做出React,而不是等待數(shù)據(jù)的完整性,從而使應(yīng)用程序更具響應(yīng)性可用。 其次,如果要執(zhí)行的操作很常見,則React式編程可以幫助將多個事件源組合到一個主流中。

假設(shè)我們要為著名的curl庫創(chuàng)建一個簡單的UI。 我們希望有三個字段(url,方法和主體數(shù)據(jù)),并且希望在鍵入時生成curl命令。 引入React式編程似乎是一個很好的用例,因為我們有多個事件源需要相同的處理。 使用傳統(tǒng)的編程模式,我們將必須對每個事件處理程序執(zhí)行相同的操作。

HTML

<div class="form-container"><label for="url">URL:</label><input id="url" type="text"></input><label for="method">Method: </label><select id="method"><option selected value="GET">GET</option><option value="POST">POST</option><option value="PUT">PUT</option><option value="DELETE">DELETE</option><option value="PATCH">PATCH</option><option value="HEAD">HEAD</option><option value="OPTIONS">OPTIONS</option><option value="CONNECT">CONNECT</option><option value="TRACE">TRACE</option></select><label for="data">Data: </label><textarea id="data"></textarea><div id="result">curl <span id="generatedCommand"></span></div></div>

HTMLInputElement urlInput = (HTMLInputElement) DomGlobal.document.getElementById("url");HTMLSelectElement methodInput = (HTMLSelectElement) DomGlobal.document.getElementById("method");HTMLTextAreaElement dataInput = (HTMLTextAreaElement) DomGlobal.document.getElementById("data");HTMLElement generatedCommand = (HTMLElement) DomGlobal.document.getElementById("generatedCommand");final String[] commands = new String[3];Observable urlStream = Observable.create((emitter) -> {urlInput.onkeyup = (event) -> {HTMLInputElement urlInputTarget = (HTMLInputElement) event.target;emitter.onNext(new Command(2, urlInputTarget.value));return null;};});Observable methodStream = Observable.create((emitter) -> {methodInput.onchange = (event) -> {HTMLSelectElement methodSelect = (HTMLSelectElement) event.target;emitter.onNext(new Command(1, "-X"+methodSelect.value));return null;};});Observable dataStream = Observable.create((emitter) -> {dataInput.onkeyup = (event) -> {HTMLTextAreaElement dataInputTarget = (HTMLTextAreaElement) event.target;emitter.onNext(new Command(3, "-d '"+dataInputTarget.value+"'"));return null;};});Observable.merge(urlStream, methodStream, dataStream).subscribe((obs) -> {commands[obs.position - 1] = obs.value;generatedCommand.textContent = String.join(" ", Stream.of(commands).filter(Objects::nonNull).collect(Collectors.toList()));});} }

結(jié)論

rxjava-gwt為GWT開發(fā)人員打開了React世界的大門。 我們已經(jīng)看到一些使React式編程有用的用例,因此GWT開發(fā)人員應(yīng)該在他們的應(yīng)用中嘗試在其應(yīng)用程序中使用React式模型。

  • 源代碼: https : //github.com/zak905/reactive-gwt

其他例子

  • 蛇游戲: https : //github.com/ibaca/rxsnake-gwt
  • 經(jīng)典突破游戲: https : //github.com/ibaca/rxbreakout-gwt
  • 繪畫應(yīng)用程序: https : //github.com/ibaca/rxcanvas-gwt

翻譯自: https://www.javacodegeeks.com/2018/05/reactive-gwt.html

gwt格式

總結(jié)

以上是生活随笔為你收集整理的gwt格式_活性GWT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。