当前位置: 首页 > news >正文

网站发展方向网站推广的途径

网站发展方向,网站推广的途径,网站内容需要备案吗,工程装饰网异步UI更新非常有用#xff0c;因为它们通常可以提高响应性#xff0c;可用性和用户界面的总体感觉。 我将在这里重点介绍ZK框架#xff0c;但是通常#xff0c;相同的原理也适用于桌面UI#xff08;Swing#xff0c;SWT#xff09;。 长时间运行的处理 有时#xff0… 异步UI更新非常有用因为它们通常可以提高响应性可用性和用户界面的总体感觉。 我将在这里重点介绍ZK框架但是通常相同的原理也适用于桌面UISwingSWT。 长时间运行的处理 有时您可能需要进行数据库查询或者需要很长时间才能进行外部Web服务调用。 通常这些作业是同步的因此基本上在代码中有一个特定的点系统将必须等待结果并阻塞运行该代码的线程。 如果最终在UI线程中运行了这样的代码则通常会完全阻塞UI。 实时更新 有时您不预先知道应该更新UI中的某些内容的确切时间。 例如您可以使用一个可视仪表来显示应用程序中的用户数量。 当新用户进入应用程序时应尽快更新当前用户的UI以反映新用户数。 您可以使用基于计时器的机制来连续检查用户数量是否已更改但是如果同时存在的用户过多则即使UI中没有实际更新的内容连续检查也将导致非常重的负载。 基本概念 让我们首先摘录此博客文章的标题“异步UI更新和后台处理” 后台处理 在长时间运行的处理用例中减少UI阻塞的最明显方法是将昂贵的处理从UI线程转移到某些后台线程。 能够理解哪种线程将在应用程序的不同部分中运行代码非常重要。 例如在ZK应用程序中大多数代码由servlet线程执行这些线程基本上是与UI线程等效的servlet世界。 为了在某​​些后台线程中执行代码我们需要一个线程池。 最简单的方法是使用JDK5中引入的java.util.concurrent.ExecutorService。 我们可以将Runnable对象推送到ExecutorService因此我们基本上是在要求ExecutorService在某些后台线程中运行特定的代码块。 绝对关键的是使用ThreadLocals的框架会遇到这种方法的问题因为在servlet线程中设置的ThreadLocals在后台线程中将不可见。 一个示例是Spring Security默认情况下使用ThreadLocal来存储安全上下文用户身份其他东西。 异步UI更新 在这种情况下异步UI更新意味着什么 基本上这个想法是一旦我们有了一些要在UI中呈现的信息我们就会通知UI新数据异步而不是直接在后台线程中更新UI同步。 我们无法事先知道新信息何时可用因此我们无法从客户端请求信息除非我们使用昂贵的轮询。 服务器推送ZK 使用ZK基本上有两种不同的方法可以在后台线程获得新信息后用于更新UI。 名称“服务器推送”来自以下事实服务器具有一些必须推送到客户端的新数据而不是典型的工作流程客户端向服务器询问信息。 首先可以通过使用Executions.activate / deactivate抢占对桌面的独占访问权限来进行同步更新。 我个人不建议这样做因为一旦您拥有独占访问权UI线程将不得不等待直到停用桌面。 这就是为什么我在这篇博客文章中根本不会介绍这种方法的原因。 另一方面异步更新是通过使用Executions.schedule完成的它符合常规事件处理的Event / EventListener模型。 这个想法是我们可以将普通的ZK Event对象推送到EventListeners客户端将被告知这些事件。 之后ZK使用Javascript进行正常的AJAX请求事件将由EventListeners处理。 这意味着如果我们使用异步更新则所有实际的事件处理将由Servlet线程完成并且所有ThreadLocals照常可用。 这使编程模型非常简单因为您只需要普通的事件侦听器方法而无需复杂的并发编程。 这是一个小例子 public class TestComposer extends GenericForwardComposer {private Textbox search;public void onClick$startButton() {if (desktop.isServerPushEnabled()) {desktop.enableServerPush(true);}final String searchString search.getValue();final EventListener el this; // All GenericForwardComposers are also EventListeners// Dont do this in a real-world application. Use thread pools instead.Thread backgroundThread new Thread() {public void run() {// In this part of code the ThreadLocals ARE NOT available// You must NOT touch any ZK related things (e.g. components, desktops)// If you need some information from ZK, you need to get them before this code// For example here Ive read searchString from a textbox, so I can use the searchString variable without problemsString result ... // Retrieve the result from somewhereExecutions.schedule(desktop, el, new Event(onNewData, null, result));}};backgroundThread.start();}public void onNewData(Event event) {// In this part of code the ThreadLocals ARE availableString result (String) event.getData();// Do something with result. You can touch any ZK stuff freely, just like when a normal event is posted.} } 在下一部分中我将向您展示如何使用JDK5 ExecutorServices来运行任务而无需手动创建线程。 如果您真的想了解ZK服务器推送还应该阅读相关的ZK文档 。 祝您编程愉快别忘了分享 参考 Advanced ZK异步UI更新和后台处理– Jawsy Solutions技术博客博客上的JCG合作伙伴 Joonas Javanainen的第1部分 。 翻译自: https://www.javacodegeeks.com/2012/09/advanced-zk-asynchronous-ui-updates-and.html
http://www.pierceye.com/news/351859/

相关文章:

  • 东莞横沥网站建设杭州网站制作排名
  • 百合怎么做网站网站开发语
  • 网站搭建哪里找最好天津市建设工程信息网站
  • 有免费注册网站吗做教育网站还挣钱吗
  • 网站做百度推广需要哪些条件店铺推广软文范例
  • 台州企业网站搭建特点迅美网站建设
  • 做营销网站推广官方网站建设方法
  • 网页设计精选网站网站查询功能怎么做
  • 重庆专业网站推广流程建立平台的步骤
  • 舟山市普陀区建设局网站net网站开发 兼职
  • 网站备案流程阿里云南宁网站建设官网
  • h5网站制作介绍简单的静态 新闻 asp 网站源码
  • 济南seo网站推广公司帮别人做彩票网站吗
  • 郑州市网站建设怎么样wordpress wp editor
  • 台州网站建设 推广公司网络营销课程总结范文
  • 网站 外包 版权杭州做官网的有哪些公司
  • 微信网站html5中山平面设计公司
  • 建站网站教程视频世界网站排名
  • 做小程序的流程seo 整站优化
  • 网站前台代码国内网站主机
  • 网站后台asp源码高明顺德网站建设
  • 网站建设推广软文网络规划设计师考试全程指导(第2版) pdf
  • 备案网站多少钱支持wordpress的空间
  • 哈尔滨网页模板建站wordpress网页设定
  • 哔哩哔哩网站怎么做视频软件进入公众号会不会泄露个人信息
  • 域名过期做的网站怎么办wap网站前景
  • 网站设计公司 宁波少儿编程课
  • 建设信用卡银行积分商城网站网站关键词优化培训
  • 网站建设对电子商务的意义深圳网站设计兴田德润简介
  • 门设计的网站建设北京最大专业网站建设