gwt格式

介绍

在过去的4到5年中,React式编程的普及程度得到了极大的提高。 这可以告诉我们,React性应用程序的用例现在比以往任何时候都有效。 后端系统上的压力已经增加,因此需要用最少的资源来处理这种压力。 响应式编程被认为是在减少资源消耗的同时提高效率和吞吐量的一种方法。 React式编程的流行导致了大多数编程语言和平台的React式扩展的发展:GWT也不例外。 在这篇文章中,我们将提供rxjava-gwt的用法示例,它是GWT的React式扩展。

关于rxjava-gwt

rxjava-gwt是RxJava对GWT的改编,而不是某些人可能认为的RxJ的包装器。 根据项目创建者Ignacio Baca的说法,将RxJava适配到GWT比包装RxJ更有用,尤其是如果Rx代码在客户端和服务器之间共享时,因为在此行为是完全一样的。 同样,这引入了共享自定义运算符或Rx合成的可能性。

用例

从后端的角度来看,React式编程被视为提高效率和吞吐量,以最小的资源消耗实现请求的方法,但是前端呢? 好吧,我们知道JavaScript本质上是异步的,并且回调/ Promises的用法很常见,那么React性又要添加什么呢? 首先,如果应用程序正在调用外部数据源(例如HTTP请求,Websocket,服务器发送的事件),则可以通过将这些源转换为流并在数据涌入时做出React,而不是等待数据的完整性,从而使应用程序更具响应性可用。 其次,如果要执行的操作很常见,则React式编程可以帮助将多个事件源组合到一个主流中。

假设我们要为著名的curl库创建一个简单的UI。 我们希望有三个字段(url,方法和主体数据),并且希望在键入时生成curl命令。 引入React式编程似乎是一个很好的用例,因为我们有多个事件源需要相同的处理。 使用传统的编程模式,我们将必须对每个事件处理程序执行相同的操作。

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()));});}
}

结论

rxjava-gwt为GWT开发人员打开了React世界的大门。 我们已经看到一些使React式编程有用的用例,因此GWT开发人员应该在他们的应用中尝试在其应用程序中使用React式模型。

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

其他例子

  • 蛇游戏: https : //github.com/ibaca/rxsnake-gwt
  • 经典突破游戏: https : //github.com/ibaca/rxbreakout-gwt
  • 绘画应用程序: https : //github.com/ibaca/rxcanvas-gwt

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

gwt格式

gwt格式_活性GWT相关推荐

  1. gwt格式_使用Spring Security保护GWT应用程序的安全

    gwt格式 在本教程中,我们将看到如何将GWT与Spring的安全模块(即Spring Security)集成. 我们将看到如何保护GWT入口点,如何检索用户的凭据以及如何记录各种身份验证事件. 此外 ...

  2. 敏捷中gwt含义_在GWT中序列化/反序列化Json

    敏捷中gwt含义 JSON和GWT 最近, GWT用户小组中进行了有趣的讨论 ,涉及在客户端对JSON进行序列化/反序列化的最佳实践. 这篇文章旨在突出其重点. 到目前为止,在GWT中有三种将对象转换 ...

  3. gwt格式_GWT HTTP请求替代方案

    gwt格式 由于多种原因 ,许多GWT用户放弃了RPC机制,这是GWT提供的调用后端的标准方法. 他们发现,在GWT RequestBuilder与其他可能不适合其应用程序模型的外部库之间迷失了自己. ...

  4. gwt格式_GWT的渐进式Web应用程序配方

    gwt格式 渐进或不渐进- 如果您已经设计或开发Web应用程序已有一段时间,那么您可能会遇到无数次"渐进式Web应用程序"一词,并且可能会在未来几年内使用. 您可能想知道PWA的确 ...

  5. gwt前台开发_为GWT设置开发环境

    gwt前台开发 介绍 这是旨在用Java开发跨平台移动应用程序的系列文章的一部分 . 在此博客文章中,我们将了解GWT是什么,并为GWT设置开发环境. GWT是一个开源开发工具包,用于开发基于浏览器的 ...

  6. gwt格式_GWT –利弊

    gwt格式 我喜欢JavaScript. 随着jQuery和Mootools的出现,我对JavaScript的热爱倍增 . 如果有选择,我将对开发的任何Web应用程序使用上述任一框架. 但是进入服务行 ...

  7. idea gwt 怎么编译_为GWT设置开发环境

    idea gwt 怎么编译 介绍 这是旨在用Java开发跨平台移动应用程序的系列文章的一部分. 在此博客文章中,我们将了解GWT是什么,并为GWT设置开发环境. GWT是一个开源开发工具包,用于开发基 ...

  8. gwt-2.8.2下载_从GWT开发人员的角度概述Scala.js

    gwt-2.8.2下载 该博客严重偏向于GWT(和基于GWT的框架),但是我谨记,将来GWT可能会被其他技术取代,因此我们始终愿意探索其他平台/框架. 正如他们所说,多元化可以降低风险. 每种编程语言 ...

  9. 腾讯视频下载格式_怎么下载腾讯视频

    不管这个腾讯视频好用与否,都有一大批用户,本文播放器家园网小编分享腾讯视频下载格式_怎么下载腾讯视频.腾讯视频时刻为您推荐最新最火的视频,精彩不断随时观看.支持各种画质的下载,没网也能享受高视觉的享受 ...

最新文章

  1. 从零开始学电脑办公_从零开始学办公软件之办公软件介绍
  2. 脑机互动可提高行动能力
  3. 扩展正则及正则基本用法
  4. python sql 日期查询_Python--flask使用 SQLAlchemy查询数据库最近时间段或之前的数据...
  5. python外卷(12)-sort(),sorted(),ord(),chr()
  6. catkin_make
  7. 《C++ Primer Plus》14.2 私有继承 学习笔记
  8. 数据结构 传统链表实现与Linux内核链表
  9. office2003 office2007同时安装 配置问题的解决
  10. on_mouse OpenCV 获得矩形区域
  11. java留言板论文开题报告_在线留言板毕业设计开题报告.doc
  12. R语言缺失值判断以及处理
  13. 每个产品经理都应该了解的5大技术技能
  14. 劝学篇翻译软件测试,《劝学篇》 全文、注释、翻译和赏析 - 可可诗词网
  15. 琪琪格不因为漂亮而自信
  16. 最新国家行政区划数据下载(截止2017年10月31日)目前2019.1.21仍为最新数据
  17. wps教鞭功能_你未必知道的WPS神奇功能
  18. Who do you think is the best coder, and why?
  19. 网站文章被采集?尝试使用这几种方法进行最大防护
  20. ae制作小球轨迹运动_视频剪辑教程:AE动画教程,如何创建一个运动的小球

热门文章

  1. KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)题解
  2. 「LibreOJ NOI Round #2」不等关系 (dp+NTT分治)
  3. YBTOJ:运动积分(trie树)
  4. YBTOJ:方程的解(组合数学)(插板法)
  5. YbtOJ#20239-[冲刺NOIP2020模拟赛Day10]连边方案【状压dp】
  6. jzoj5123-diyiti【统计,容斥】
  7. Problem G. Graph 2015-2016 acmicpc neerc 拓扑排序模拟
  8. 阿里P9谈程序员程序员的青春饭
  9. HashMap jdk1.7源码阅读与解析
  10. Java IO: 字符流的Piped和CharArray