Prototype與JQuery對比
我個人是先從prototype.js入手,包括JiveJdon3.6版本都是基於它的,Jquery也一直關注,發現兩者語法比較接近,prototype.js更接近Javascript風格,而Jquery設計上要簡潔。
國外2007年有一篇文章對jQuery和Prototype做了比較:
Why I moved from Prototype to jQuery:
http://www.quarkruby.com/2007/11/6/why-i-moved-from-prototype-to-jquery
我認為JQuery主要優點是:Jquery是Behavior driven development (BDD)行為驅動開發。使用JQuery可以將html元素的行為從html中分離出來,實現所謂MVC J的模式,View是html,而J是Jquery.
至於文中提到的其他Jquery優點,prototype.js也有,比如Chain:
Jquery:
$("div.message").show()
.append("<p>Action has been executed successfully")
.addClass("flash");
prototype:
$$('input.date')
.invoke('observe', 'focus', onFocus)
.invoke('observe', 'blur', onBlur)
chain用法雖然簡單,但不容易懂。
在下面這篇文章中,作者指出如何更加精煉簡單地使用Prototype:
http://thinkweb2.com/projects/prototype-checklist/
比如常見的AJAX語法:
不帶引數:new Ajax.Request('blah.php')
帶引數:new Ajax.Request('ninja.php', {
parameters: {
weapon1: 'foo',
weapon2: 'bar'
}
})
獲得某個欄位的值:var woot = $F('bar')
修改某個欄位的值:$('coolestWidgetEver').update('some nifty content')
設定CSS:
$('footer').setStyle({
height: '100px',
background: 'ffc'
})
最著名的爭論是2007年的Prototype and jQuery: A code comparison
http://ajaxian.com/archives/prototype-and-jquery-a-code-comparison
使用PPT將兩者做比較,討論者無數。
不過,Prototype 有一個著名的windows效果簡稱PWC(Prototype Window Class):
http://prototype-window.xilinus.com/
至今沒有在Jquery中發現類似替代,特別是這個頁面的效果:http://prototype-window.xilinus.com/PWC-OS/index.html
號稱可以替代PWC的JqModel:
http://dev.iceburg.net/jquery/jqModal/examples
視窗效果比PWC要差多,PWC簡直可以媲美Windows桌面效果,本論壇就是用的PWC效果。
有人說:基於Prototype更適合做一些應用框架庫;而Jquery則是直接面嚮應用的,比較贊同。
[該貼被banq於2009-08-12 14:44修改過]
相關文章
- jQuery中empty與html("")的區別對比jQueryHTML
- 寶付分析關於ExtJS與JQuery支付對比JSjQuery
- Dojo與jQuery綜合比較分析jQuery
- 全選與反選(dom與jquery比較)jQuery
- Python==與is對比Python
- redis與rabbitmq對比RedisMQ
- git與svn對比Git
- RocketMQ與Kafka對比MQKafka
- 對比 Redis 與 MemcachedRedis
- 主流Jquery彈出框優缺點對比jQuery
- Reactjs-JQuery-Omi-Extjs-Angularjs對比ReactJSjQueryAngular
- Terraform與其他工具對比ORM
- Kotlin 與 Java 對比KotlinJava
- synchronized 與 Lock 的對比synchronized
- 【HTML與XML的對比】HTMLXML
- JUnit 4 與 TestNG 對比
- pyppeteer與selenium對比
- prototype 與 __proto__區別
- Object.prototype.__proto__, [[prototype]] 和 prototypeObject
- Go 與 C++ 的對比和比較GoC++
- AJAX框架的選擇:ECHO2, GWT, DOJO, PROTOTYPE, JQUERY框架jQuery
- ubuntu與centos系統對比UbuntuCentOS
- 對比ubuntu與centos系統 UbuntuCentOS
- Flutter 與 iOS 原生 WebView 對比FlutteriOSWebView
- MySQL 半同步 與Raft對比MySqlRaft
- TDSQL-A與CK的對比SQL
- ListView 與 RecyclerView 簡單對比View
- Mobx 與 Redux 的效能對比Redux
- 客觀對比Node 與 GolangGolang
- OSI與TCP/IP的對比TCP
- RabbitMQ與Kafka選型對比MQKafka
- openGauss 對比-磁碟與MOT
- ROWID與ROWNUM的簡介與對比
- shrink 與rebuild對索引高度的影響對比Rebuild索引
- Flutter 與 Android 原生 WebView 對比FlutterAndroidWebView
- Ansj與hanlp分詞工具對比HanLP分詞
- Linux容器與Docker的對比LinuxDocker
- Servlet與Netty橫向對比ServletNetty