有一個demo by IBM,它顯示了反向AJAX如何與DWR 2一起使用。另一方面,Scala/LIFT帶有內置的反向AJAX功能。反向AJAX(Comet)和Spring MVC與Scala/LIFT?
問題:如果Spring MVC能正常工作,有什麼經驗嗎?
問題:如果你從頭開始,什麼都超過DWR/Spring MVC的
問題寧願斯卡拉/ LIFT利弊:在斯卡拉/升降機,是安全處理的那樣複雜在春季安全?
有一個demo by IBM,它顯示了反向AJAX如何與DWR 2一起使用。另一方面,Scala/LIFT帶有內置的反向AJAX功能。反向AJAX(Comet)和Spring MVC與Scala/LIFT?
問題:如果Spring MVC能正常工作,有什麼經驗嗎?
問題:如果你從頭開始,什麼都超過DWR/Spring MVC的
問題寧願斯卡拉/ LIFT利弊:在斯卡拉/升降機,是安全處理的那樣複雜在春季安全?
提起的這是由Novell公司選定後,他們評估了許多不同的技術對他們的脈衝產品電源彗星架構。
Lift的Comet實現使用單個HTTP連接來輪詢頁面上任意數量組件的更改。每個組件都有一個版本號。長輪詢包括版本號和組件GUID。在服務器端,監聽器被附加到長輪詢請求中列出的所有GUID。如果任何組件的版本號較高(或者在長期輪詢期間版本號增加),則deltas(描述每個版本的更改的一組JavaScript)將發送到客戶端。將應用增量值,並將客戶端上的版本號設置爲更改集的最高版本號。
Lift將長輪詢與會話管理集成在一起,以便如果在長輪詢期間請求進入相同的URL(會導致連接不足),則終止長輪詢以避免連接不足(某些瀏覽器最多具有2個HTTP連接每個命名服務器,其他人最多可以有6個)。 Lift還支持長期輪詢請求的DNS通配服務器,這樣瀏覽器中的每個選項卡都可以針對不同的DNS通配服務器進行長時間輪詢。這可以避免連接不足問題。
Lift可動態檢測Servlet在Jetty 6上運行的容器以及(很快)Glassfish,Lift將使用平臺的「continuations」實現來避免在長期輪詢期間使用線程。
Lift的JavaScript可以位於jQuery和YUI之上(也可以位於Prototype/Scriptaculous之上)。實際的輪詢代碼包括連接失敗的退避和處理瞬態連接的其他「優雅」方式故障。
我看過Atmosphere,CometD,Akka(所有面向JVM的Comet技術)。沒有(當時我評估它們)支持每頁多個組件或避免連接匱乏。
Novell從頭開始並選擇了Lift來驅動Pulse,原因很多。
在安全性方面,Lift + Beats Spring + Spring安全。請參閱http://www.mail-archive.com/[email protected]/msg13020.html
基本上,Lift的安全性已烘焙到您的應用程序中。提升應用默認情況下可抵抗常見問題(跨站點腳本,重播攻擊,跨站點請求僞造)。提升應用程序默認情況下可抵抗參數篡改。 Lift的站點地圖定義站點導航和訪問控制規則。這意味着你永遠不會有人無法點擊的鏈接。您不需要有一個外部過濾器(例如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"/>
這兩個安全系統僅涵蓋基本情景,並且需要大量的定製才能用於真實世界的項目。
這就是我將用於構建COMETed RIA在斯卡拉:
另一種選擇,純Java(或包括Scala在內的任何其他JVM語言)爲中心是ItsNat Comet。
嘿大衛,謝謝你的非常有用的答案。我已經有了一種感覺,除了Lift之外別無選擇,現在我知道這個假設是正確的。 因此...斯卡拉...我學習的另一種語言... :-( – 2010-06-29 01:24:19
期待您在Lift Google Group上看到您http://groups.google.com/group/liftweb – 2010-06-29 02:21:03