亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 擴展 > jQuery > 正文

jQuery1.3全新的Sizzle引擎實現CSS選擇器

2024-09-06 20:04:32
字體:
來源:轉載
供稿:網友
john resig老爺在twitter上宣布jquery1.3正式發布,直接把2加到3反映了這個版本的重要性不同以往,除了重寫很多重要方法——比如offset(獲取頁面上的各種尺寸和位置數據),創建和插入dom節點(比如append, before之類,這些方法是jquery以前速度上的瓶頸之一,我就完全不用它們,但是現在速度提高了6倍)——最重要的改變是啟用了全新的sizzle引擎來實現css選擇器。

從“jquery”這個名字就能看出,用css/xml選擇器查詢頁面元素,是這個javascript庫賴以起家的絕活,最早可以追溯到dean edwards的cssquery,和simon willison的getelementsbyselector,但是在那個上古時代(史料記載中無正式名稱,我們可以稱之為“age of the first bubble”,或者“dhtml era”,雖然也有學者認為希臘神話中描述的黑鐵時代(iron age)就是指那段時間……dojo創始人alex russell,以及prototype創始人sam stephenson,都是來自那個時代地淫~),面對惡劣的瀏覽器環境和粗糙的web應用,這些選擇器的實現只能被當作geek的實驗,沒有應用市場。而到了05年,世界已經進入web2.0和ajax的新紀元,84年出生的天才少年john resig(555跟我同年~>_<~)在先行者的啟發下(必須承認d edwards老爺“啟發”了很多人……自己的作品卻沒機會進入主流)開始探索選擇器技術,一年后的1月15日(沒錯今天是jquery三周年生日)就在紐約的barcamp上正式發布了第一版的jquery,迅速紅遍全球,流行程度堪比搖滾巨星(我就很喜歡jquery去年發布1.2.6時搞得那個搖滾主題的主頁啞?。?/p>

在jquery的影響下,選擇器逐漸變成了javascript開發的主流需求,其他的庫不進則死,都匆匆引入選擇器,比如dojo.query,yahoo.util.selector.query,$$……甚至各大瀏覽器廠商也開始實現w3c最新的selectors api標準(包括safari3.1、firefox3.1、ie8 beta,居然連ie也實現了耶!可見這個現象的反常程度……)

但是當選擇器的實現變得無處不在五花八門的時候(我以前做的jquery迷你版里也有一個自己實現的選擇器-___-b),開發者們又有了新煩惱,他們需要統一的,能平穩遷移/升級的接口,需要最高效的實現,隨著w3c selectors api的實現,統一標準也變得更加重要和緊迫,于是john resig就像武林盟主一樣站出來開發了一個純粹而高效的選擇器引擎——sizzle,并主動貢獻給prototype, dojo, mochkit等各大門派,jquery1.3是第一個采用sizzle的正式產品,可以看到速度有顯著的提升,今后的發展非常令人期待。

sizzle反映了一種新趨勢,隨著javascript庫的逐漸成熟,一些功能開始被分離出來設計成獨立維護的引擎/核心。實際上現在的主流庫里,有很多代碼都互相借鑒,并采納blogsphere里討論出的最新最好的實現方法,比如jquery的dom ready方法就可以明顯看到這種演進,而那些涉及跨瀏覽器的實現和bug fix,尤其容易趨向于統一。有機會產生通用引擎的領域,除了css選擇器,可以預見的還有2d/3d繪圖引擎(封裝canvas,vml或svg),模板引擎,對象映射,文本解析,動畫,運動和定位相關的計算,還有一些基礎代碼,比如迭代器。

不過關于選擇器,還有一點必須指出的是,無論選擇器發展的多么高效,即使有一天能完全當作native實現來對待,也不能過度的依賴它來完成任務,滿足于寫一些腳本式的代碼,而忽視javascript語言本身的算法,數據結構和模式。這個道理其實就類似php和mysql的關系,php作為服務器端專業的web開發語言,有大量開發工作是圍繞著數據來進行,而強大的mysql已經實現很多針對數據查詢的算法和邏輯,加上php本身與其說是一門語言,不如說是工具包,導致很多初心的php程序員簡單的依賴于mysql,編程能力普遍不高,進而損害到了php程序員的平均工資……

從這個角度上來講,javascript跟php非常相像,雖然javascript本身是一門強悍而集大成的語言(記得上次去帝都參加sd2c時,天際網的cto郭應壽說“喜歡技術的人不可能不喜歡javascript”),但是多數時候都被限制在瀏覽器的sandbox里,曾經一度淪為真正的“腳本語言”,多虧瀏覽器后來施舍了dom和xhr,才讓javascript有了用武之地,所以js在很大程度上也是圍繞著dom在編程,dom是前端最重要的數據結構,有了強大的選擇器工具,很多需求只要反復調用選擇器,寫幾串腳本式的代碼就能實現,如果滿足于這種開發方式,不站在更高的角度去設計和構建應用,對于自己和自己的工作都可以說是非常危險的。

另外,設計良好的html,重要性相當于后端的數據庫設計,可以讓選擇器的使用變得更高效,并直接影響js的設計模式。我在一些項目中非常喜歡這樣的理念:在保證語義和簡潔的前提下,讓html成為一種配置文件,當需求有變化,或是在一些可復用的場合,只需要簡單的編寫html,就能自動實現相應的程序邏輯。對于選擇器的使用,還存在另一種截然相反的設計方式:在有些情況下,需要讓javascript和html盡可能的解耦合,讓同樣的代碼可以適應靈活變化的html結構,并盡可能減少dom操作,具體的例子會在下篇文章中給出。

其實本來今天最想寫的是jquery1.3中新增的live events,因為土豆網全局js里正好有一個自己實現的方法$.fn.eventproxy,兩者基于同樣的設計模式,明天有空的時候再寫算了,這篇就當作向三歲的jquery致敬。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看精品国产视频| 国产日韩欧美电影在线观看| 伊人成人开心激情综合网| 久久久免费精品视频| 日韩在线播放一区| 日韩欧美国产一区二区| 91精品视频在线| 国产精品美女av| 欧美日韩高清区| 欧美日韩aaaa| 97在线免费观看视频| 国产精品男人爽免费视频1| 日韩电影免费观看在线| 色噜噜狠狠狠综合曰曰曰88av| 欧美亚洲国产日本| 午夜精品一区二区三区在线| 在线精品91av| 国产精品日韩专区| 亚洲精品欧美一区二区三区| 久久免费在线观看| 午夜伦理精品一区| 亚洲自拍高清视频网站| 美女av一区二区三区| 久久亚洲影音av资源网| 一区二区三区视频观看| 国产欧美精品一区二区三区-老狼| 欧美在线视频网站| 亚洲欧洲黄色网| 亚洲综合在线小说| 成人免费视频xnxx.com| 欧美一级视频在线观看| 日韩欧美在线免费| 亚洲综合在线播放| 亚洲欧美色婷婷| 午夜精品久久久99热福利| 日韩av片电影专区| 亚洲欧美激情四射在线日| 精品国产乱码久久久久久天美| 中文亚洲视频在线| 欧美在线播放视频| 色与欲影视天天看综合网| 动漫精品一区二区| 久久香蕉国产线看观看网| 欧美成人午夜影院| 欧美极品少妇xxxxⅹ喷水| 欧美一级视频免费在线观看| 日韩成人黄色av| 亚洲第一免费网站| 国产日韩欧美在线| 欧美性高潮床叫视频| 亚洲白拍色综合图区| 日韩欧美高清在线视频| 国产精品吊钟奶在线| 欧美国产欧美亚洲国产日韩mv天天看完整| 92看片淫黄大片欧美看国产片| 在线看欧美日韩| 日韩电影大全免费观看2023年上| 日韩电影网在线| 欧美精品xxx| 欧美精品在线观看| 欧美激情欧美激情在线五月| 亚洲图片欧美日产| 国产精品久久久久aaaa九色| 日韩精品中文字幕在线| 成人福利网站在线观看11| 高清欧美电影在线| 欧美日韩另类视频| 国产成人a亚洲精品| 97精品国产97久久久久久春色| 91精品久久久久久久久久另类| 国产精品久久久久免费a∨大胸| 欧美性感美女h网站在线观看免费| 欧美国产日本在线| 久热国产精品视频| 国产精自产拍久久久久久| 美女性感视频久久久| 亚洲人成电影网站色www| 欧美在线视频网站| 国产日韩在线一区| 国产精品成人免费视频| 高清视频欧美一级| 成人黄在线观看| 久久精品夜夜夜夜夜久久| 国产日韩av高清| 中文字幕免费精品一区| 久久久久亚洲精品国产| 欧美激情18p| 精品久久久久久久久国产字幕| 91中文精品字幕在线视频| 欧美在线观看日本一区| 精品无码久久久久久国产| 日韩欧美在线视频免费观看| 欧美一级bbbbb性bbbb喷潮片| 欧美激情精品久久久久| 欧美性理论片在线观看片免费| 久久在线视频在线| 91免费的视频在线播放| 午夜欧美不卡精品aaaaa| 亚洲色图50p| 久久噜噜噜精品国产亚洲综合| 国产精品v片在线观看不卡| 欧美一级片久久久久久久| 综合久久五月天| 亚洲国产精品字幕| 亚洲2020天天堂在线观看| 97色在线播放视频| 在线日韩第一页| 97久久伊人激情网| 亚洲精品自拍偷拍| 国产精品久久91| 在线观看日韩欧美| 亚洲一区二区久久久久久久| 97碰在线观看| 色综合亚洲精品激情狠狠| 欧美午夜精品在线| 亚洲成人久久久久| 正在播放国产一区| 精品无人区太爽高潮在线播放| 亚洲福利视频网站| 亚洲欧美国产精品| 久久亚洲精品小早川怜子66| 亚洲色图激情小说| 国产精品久久久久久久久久久不卡| 亚洲片国产一区一级在线观看| 久久成人人人人精品欧| 成人网中文字幕| 在线播放国产一区中文字幕剧情欧美| 久久精品国产久精国产思思| 欧美精品www在线观看| 97香蕉超级碰碰久久免费软件| 欧美一级在线亚洲天堂| 在线看日韩欧美| 91国产精品视频在线| 免费97视频在线精品国自产拍| 久久久欧美一区二区| 国产精品av在线| 国产三级精品网站| 中文字幕一区二区精品| 中文字幕亚洲一区二区三区五十路| 98精品国产高清在线xxxx天堂| 日韩亚洲国产中文字幕| 亚洲男女自偷自拍图片另类| 亚洲免费伊人电影在线观看av| 国产成人精品久久二区二区| 亚洲韩国欧洲国产日产av| 欧美激情第三页| 久久久久中文字幕2018| 久久综合免费视频影院| 亚洲精品自拍偷拍| 欧美日韩国产精品一区| 国产色婷婷国产综合在线理论片a| 亚洲精品欧美日韩| 国产精品一区二区久久| 国产一区视频在线播放| 久久久久久久激情视频| 久久精品视频导航| 亚洲国产私拍精品国模在线观看| 欧美日韩日本国产| 日韩中文字幕国产精品| 国产精品电影一区| 国产欧美日韩中文字幕在线| 欧美精品激情视频| 亚洲欧美成人精品| 日韩美女毛茸茸|