有一个 demo by IBM显示了如何轻松地将反向AJAX用于DWR 2.另一方面,Scala / LIFT具有内置的反向AJAX功能。

>问题:任何经验,如果这适用于Spring MVC?
>问题:如果你从头开始,那么喜欢Scala / LIFT的DWR / Spring MVC的优缺点是什么
>问题:在Scala / LIFT中,安全处理与Spring Security中一样复杂?

电梯的彗星架构由Novell选择,在他们评估了许多不同的技术后,为其pulse产品供电。

Lift的Comet实现使用单个HTTP连接来轮询页面上任意数量的组件的更改。每个组件都有一个版本号。长调查包括版本号和组件GUID。在服务器端,侦听器附加到长轮询请求中列出的所有GUID。如果任何组件具有较高的版本号(或长时间轮询期间的版本号增加),则会将三角形(描述每个版本的更改的一组JavaScript)发送到客户端。应用三角形,并将客户端上的版本号设置为更改集的最高版本号。

Lift将长轮询与会话管理集成,以便在长时间轮询中引起连接不足的请求进入相同的URL时,长时间轮询终止以避免连接不足(某些浏览器每个命名服务器最多有2个HTTP连接,其他人最多6)。 Lift还支持DNS漫游服务器进行长轮询请求,以便浏览器中的每个选项卡可以对不同的DNS通配符服务器进行长时间轮询。这样可以避免连接饥饿问题。

提升可以动态地检测Servlet正在运行的容器,并且在Jetty 6& 7和(很快)Glassfish,Lift将使用平台的“延续”实现,以避免在长时间投票期间使用线程。

Lift的JavaScript可以坐在jQuery和YUI的顶部(也可以坐在Prototype / Scriptaculous之上)。实际的轮询代码包括连接失败的回退和其他处理瞬态连接失败的“优雅”方式。

我看过Atmosphere,CometD,Akka(所有基于JVM的Comet技术)。没有(当时我评估它们)支持每页多个组件或连接饥饿避免。

Novell从头开始,选择了Lift来驱动pulse,这是一个很好的理由。

在安全性方面,Lift将弹簧弹簧安全握手。见http://www.mail-archive.com/liftweb@googlegroups.com/msg13020.html

基本上,电梯的安全性被烘烤到您的应用程序中。默认情况下,电梯应用程序可以抵御常见问题(跨站点脚本,重播攻击,跨站点请求伪造)。默认情况下,电梯应用程序可以抵御参数篡改。 Lift的sitemap定义了站点导航和访问控制规则。这意味着你从来没有一个人无法点击的链接。您不需要具有外部过滤器(例如Spring Security),您必须独立于您的应用程序进行配置(whoops …移动页面,但忘记确保更新了Spring Security XML文件)。

哦,如果你不想使用模板语言,这是一个完整的电梯彗星聊天组件:

class Chat extends CoMetactor with CometListener {
  private var msgs: List[String] = Nil

  def registerWith = ChatServer

  override def lowPriority = {
    case m: List[String] => msgs = m; reRender(false)
  }

  def render = {
    <div>
    <ul>
    {
      msgs.reverse.map(m => <li>{m}</li>)
    }
    </ul>
    <lift:form>
    {
      SHtml.text("",s => ChatServer ! s)
    }
    <input type="submit" value="Chat"/>
    </lift:form>
    </div>
  }
}

并将其插入到页面中:< lift:comet type =“Chat”/>

反向AJAX(Comet)和Spring MVC vs. Scala/LIFT?的更多相关文章

  1. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – 比较两个版本号

    如何比较两个版本号字符串?例如:3.1.1和3.1.2.5.4现在我需要找出3.1.2.5.4是否高于3.1.1但我不知道如何做到这一点.有谁能够帮我?

  3. iOS App版本编号

    iTunesConnect开发人员指南PDF(第47页),关于iOS应用程序的版本号,请参阅以下内容:Usetypicalsoftwareversioningconventions(suchas“1.0″or“1.0.1”or“1.1”)没有关于应用版本号的确切格式的声明.我们可以使用版本号,例如“1.0.0.1”或“1.0.0.0.1”吗?解决方法我的建议是坚持使用1.x.x格式作为应用商店用途

  4. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  5. Swift 学习一

    国外开发者最近发现,WWDC2014上苹果发布的新语言Swift,和古老的Scala语言在语法上存在众多的相似之处。Swift语言从语法上来看,几乎是Scala的一个分支,在以下功能上几乎是等同的:类型继承、闭包、元组、协议、扩展、泛型等。不过Swift的运行环境和Scala的区别还是很大,这个概念才是Swift最重要的。但Swift最终编译到机器代码,使用引用计数机制,与Objective-C无缝整合。所以Swift和Scala在代码表象上的相似,应该并不太影响两种语言本质机理上的重大不一致。

  6. swift获取屏幕的宽高

    之前写了一篇关于获取iphone屏幕宽高的方法,算是能解决ios7下的一个小bug,是用OC写的,文章地址:http://blog.csdn.net/wingsofpiano/article/details/45726729这次用swift语言试着写了一个相同的方法,同样,粘贴到viewcontroller就能用使用示例:如果有什么错误的地方还望各位前辈能指出来

  7. swift中获取判断设备版本的方法

    1.直接获取,按需要加if判断即可2.获取每一位的版本号,利用switch进行判断3.获取版本号后,定义一个返回比较结果的对象进行比较

  8. Swift获取APP版本号,提示用户升级

    获取当前版本号获取历史的版本号??

  9. swift 获取app版本号及 ios 版本号

    =infoDictionary!["CFBundledisplayName"]letmajorVersion:AnyObject?=infoDictionary!["CFBundleShortVersionString"]letminorVersion:AnyObject?=infoDictionary!

  10. Swift开发:Info.plist文件的常见配置

    如果使用文本编辑器打开这个文件,会发现这是一个XML格式的文本文件,使用Xcode的OpenAs->SourceCode或者PropertyList可以进行编辑,本文会重点介绍一些在iOS开发中常见的的Info.plist的配置项。Info.plist配置项说明1、设置启动图标2、设置启动闪屏图片3、设置版本号相关设置Bundle的版本号。

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部