智能手機成為當下最為主要的個人終端設備時,盡管大家已經越來越習慣于使用APP,但瀏覽器作為曾經帶領用戶接觸互聯網世界的窗口,也依然還在繼續發光發熱。日前,谷歌、微軟、蘋果和Mozilla基金會共同宣布。將努力提高瀏覽器的互操作性,以確保Chrome、Edge、Safari和Firefox帶來同樣可靠和一致的Web體驗,為此推出了被稱為Interop 2022的互操作性標準。
據悉,Interop 2022是一個為Web開發者服務的通用測試標準,其將以“瀏覽器引擎在15個重點領域和3個聯合調查中的表現”為不同瀏覽器提供評分,分別為CSS層疊層、色彩空間和功能、C對話框元素、CSS子網格、排版和編碼、滾動條控件、表單控件等。目前,這四方也公布了各自旗下Chrome、Edge、Safari和Firefox的一致性進展,以及具體的兼容性成績。
蘋果方面在WebKit的開發者博客中透露,“Interop 2022是一個不斷發展的指標,由一組自動化測試生成,旨在評估對某些對Web開發人員最重要的Web標準的支持。Interop 2022將全年不斷更新,顯示瀏覽器工程師修復錯誤、實施新功能和改進測試的進展”。由此不難發現,目前的主流瀏覽器在兼容性問題“折磨”了開發者與用戶二十年余年后終于達成一致,要坐下來解決問題了。
“可靠和一致的Web體驗”,其實指的是瀏覽器之間互相不兼容的現象。相信大家或多或少都用過360、搜狗、QQ等瀏覽器,并且這些產品基本都是在IE 6于2006年被評為“有史以來第八糟糕科技產品”后,一到兩年內誕生的。而這一批瀏覽器在宣傳推廣時所打出的一個共同的口號就是“雙核瀏覽器”,通常都主打的是兼容IE與Chrome內核,可面對老的Web應用使用IE內核,面向新的網頁則使用Chrome內核。
相信很多朋友在使用瀏覽器時,多少都遇到過各式各樣的兼容性問題。比如說,某個網頁在IE上是一個顏色,在Chrome上就變為了另一個顏色,或是網頁的比例發生了變化;又或者說,許多學生朋友可能在填報志愿時,就遇到過網站上出現“瀏覽器不兼容,請使用IE11/IE10/IE9瀏覽器訪問”的提示。
而所謂的瀏覽器兼容性問題,是指因為不同瀏覽器對同一段代碼有著不同的解析,所造成頁面顯示效果不統一的情況。為此,解決瀏覽器兼容,也成為了跨瀏覽器開發的一個核心問題。而Web瀏覽器的架構,可以實現為一個進程包含多個線程,也可以實現為很多進程包含少數線程通過IPC通信。但如何做一款瀏覽器,卻并沒有統一的標準。
這一切的根源,其實是在互聯網早期,也就是上世紀90年代主導瀏覽器市場的微軟,與負責web技術標準的W3C組織并不是一條心、雙方各自奉行不同的標準所致。要知道,在新興市場形成的早期通常都是建立標準的最佳時機,但當時最終的結果卻是微軟憑借著Windows的超高市占率,讓IE的標準成為了用戶的事實標準。
由于當初微軟放棄了進入W3C,導致這一組織在Web技術標準上空有權威性、卻基本不存在強制力,而2004年誕生的WHATWG(網頁超文本技術工作小組),也更是讓W3C的權威性大損。早在2004年時,W3C試圖拋棄HTML轉向XHTML,導致了蘋果、Opera、Mozilla的不滿,三家甩開W3C建立WHATWG開發了Web Applications 1.0,也就是現在的HTML 5。
雖然到了2007年W3C接納了WHATWG,并同時將HTML 5作為Web技術的新標準,但W3C也就此失去了制定“標準瀏覽器”的能力。
當初微軟不加入W3C,使得后者不采用IE的方案,而在IE掉隊,Chrome與Firefox崛起后,已經有大量開發者基于IE標準開發了大量的Web產品,讓瀏覽器不得不用兼容模式來解決這一問題。再加上不同瀏覽器采用的內核不同,由于缺乏統一的開發標準,以及各大瀏覽器廠商為了凸顯產品的特色,更是使得整個瀏覽器行業出現了百花齊放的狀態。
在過去很長的一段時間里,跨瀏覽器開發、并解決瀏覽器的兼容問題,成為了前端開發者最為頭疼卻必須要解決的問題。而他們所要面臨的問題,就是開發者的代碼運行環境本身并不掌控在自己手中(服務器端)、而是在客戶端(用戶的瀏覽器),因此也不得不盡一切可能去協調各式各樣的瀏覽器。
眾所周知,在PC互聯網時代,瀏覽器市場有四大內核,即微軟IE瀏覽器的Trident內核、蘋果Safari和谷歌Chrome的Webkit內核、Firefox瀏覽器的Gecko內核,以及Opera瀏覽器的Presto內核。不同內核代表著瀏覽器的渲染引擎不同,而渲染引擎又是負責取得網頁內容(HTML、XML、圖像)、整理信息(加入CSS樣式等),以及計算網頁顯示方式,然后輸出至顯示設備的關鍵。
不同瀏覽器內核不同的情況下,渲染邏輯自然也就不一樣,就會導致同一份代碼有的瀏覽器顯示的正常、有的就不正常。例如,不同瀏覽器對HTM標記所具有的內外邊距屬性就有著不同的定義,對同一個網頁元素重復設置多種樣式時、處理優先級不一樣,圖片的位置設置在不同瀏覽器中顯示效果不同等等,都是極為常見的。
目前,業界最主流的解決方案是“css hack”,而css (層疊樣式表)則是用來表現HTML或XML等文件樣式的計算機語言,是控制網站樣式和布局的關鍵,也就是大家在瀏覽器上看到的網頁顯示效果,其實就是由css負責。由于不同廠商瀏覽器或某瀏覽器的不同版本對css的支持、解析不一樣,就要求開發者來編寫相應的css code。簡單來說就是大力出奇跡,用因地制宜來解決問題。
css hack將壓力拋給了開發者,為此部分開發者會在網頁上設置瀏覽器檢測,針對某些(IE)瀏覽器甚至直接拒絕服務,以至于沒有兼容模式的Edge(Trident內核)在遇到網頁檢測瀏覽器時,干脆就聲稱自己是Chrome。顯然這不是一個完美的解決方案,但奈何W3C組織不給力、瀏覽器廠商又各有各的算盤,所以解決瀏覽器之間的兼容性問題也就被束之高閣了。
那么,為什么在移動互聯網時代、APP已經動搖了瀏覽器市場地位的當下,谷歌、微軟、蘋果和Mozilla又要攜手來解決這一問題呢?
其實這是因為導致瀏覽器兼容性問題的歷史包袱,現在已經不存在了。微軟的IE11以及Edge已經徹底“壽終正寢”了,同時Mozilla的Firefox市場份額已不到4%,Opera瀏覽器更是放棄了自己的Presto內核、改用Webkit內核,并且Webkit內核也基本上已經一統整個市場了。至于說,谷歌與Opera合力研發的Blink內核,則是Webkit內核的硬分叉產物,兩者擁有同一個源流。
換句話來說就是,當初瀏覽器兼容性問題的出現,是因為瀏覽器廠商太多、瀏覽器內核太多,各家的標準讓開發者無所適從。但現在隨著微軟Edge加入谷歌的Chromium生態、Firefox式微,以及蘋果Safari圈地自萌,開放的生態讓Chromium的標準成為了全球開發者都在遵循的行業標準。
簡單來說,就是Chromium生態在事實上已經壟斷了瀏覽器市場,只需要4家廠商就可以制定瀏覽器的事實標準了。
(1) cookie 數據??不能超過4k
(2) sessionStorage 和 localStorage 雖然也有存儲??的限制,但? cookie ?得 多,可以達到5M或更?
(1) localStorage 存儲持久數據,瀏覽器關閉后數據不丟失除?主動刪除數據
(2) sessionStorage 數據在當前瀏覽器窗?關閉后?動刪除
(3) cookie 設置的 cookie 過期時間之前?直有效,即使窗?或瀏覽器關閉
說得簡單點,在線HTML編輯器就是在網上發帖子、寫博客的那個帶編輯功能的框框,可以進行圖文排版等操作。
當年本菜鳥做網站的時候,曾經自己用javascript編寫過一個比較簡單的在線HTML編輯器,用于文本內容的排版。但是因為水平有限,很多功能都無法實現。后來有了eWebEditor,功能確實強大,但這個編輯器是個收費的軟件,并且正因為功能強大,也就顯得過重,一些輕量的場合不是太適用。那有沒有既免費、又功能強大、還能適應輕量場合的在線HTML編輯器呢?
答案肯定是有的。這首先要感謝這些年來有一批奉獻精神的程序猿們不斷推進共享軟件的開發,讓我們得以享受他們的成果。
UEditor是由百度web前端研發部開發所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗等特點,開源基于MIT協議,允許自由使用和修改代碼。特別要說的是,頭條號后臺發布文章的編輯器就是用的UEditor!
百度UEditor
UEditor還有一個輕量版的,叫做UMeditor,簡稱UM。UM是為滿足廣大門戶網站對于簡單發帖框,或者回復框需求所定制的在線HTML編輯器。 主要特點是容量和加載速度上的改變,主文件的代碼量為139k,而且放棄了使用傳統的iframe模式,采用了div的加載方式, 以達到更快的加載速度和零加載失敗率。UM的第一個使用者是百度貼吧,以經受貼吧每天幾億的pv的考驗,功能設計應當是最優化的了。 當然隨著代碼的減少,UM的功能對于UE來說還是有所減少,但也有增加,比如拖拽圖片上傳,chrome的圖片拖動改變大小等。
百度UEditor界面
xhEditor是一個基于jQuery開發的簡單迷你并且高效的可視化HTML編輯器,基于網絡訪問并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。
xhEditor完全基于Javascript開發,可以應用在任何的服務端語言環境下,例如:PHP、ASP、ASP.NET、JAVA等。可以在CMS、博客、論壇、商城等互聯網平臺上完美的嵌入運行,能夠非常靈活簡單的和您的系統實現完美的無縫銜接。
主要特點:
精簡迷你:初始加載4個文件,包括:1個js(50k)+2個css(10k)+1個圖片(5k),總共65k。若js和css文件進行gzip壓縮傳輸,可以進一步縮減為24k左右。
使用簡單:簡單的調用方式,加一個class屬性就能將textarea變成一個功能豐富的可視化編輯器。
無障礙訪問:提供WAI-ARIA全面支持,全鍵盤精細操作,全程語音向導,提供完美無障礙訪問體驗,充分滿足殘疾人的上網需求。
內置Ajax上傳:內置強大的Ajax上傳,包括HTML4和HTML5上傳支持(多文件上傳、真實上傳進度及文件拖放上傳),剪切板上傳及遠程抓取上傳。
Word自動清理:實現Word代碼自動檢測并清理,生成代碼最優化精簡,卻不丟失細節效果。
UBB可視化編輯:支持UBB可視化編輯,在獲得安全高效代碼存儲的同時,又能享受可視化編輯的便捷。
KindEditor 也是一個開源的在線HTML編輯器, 使用 JavaScript 編寫,可以無縫地與 Java、.NET、PHP、ASP 等程序集成,比較適合在 CMS、商城、論壇、博客、Wiki、電子郵件等互聯網應用上使用。本菜鳥感覺這個編輯器上手比較容易,功能也很強大,界面比較友好,很適合菜鳥使用。可惜的是最近好像停止更新了,官網好象也能不正常訪問。
KindEditor界面
主要特點:
快速:體積小,加載速度快
開源:開放源代碼,高水平,高品質
底層:內置自定義 DOM 類庫,精確操作 DOM
擴展:基于插件的設計,所有功能都是插件,可根據需求增減功能
風格:修改編輯器風格非常容易,只需修改一個 CSS 文件
兼容:支持大部分主流瀏覽器,比如 IE、Firefox、Safari、Chrome、Opera
嚴格來說,KISSY不僅僅是一個在線HTML編輯器,而是由阿里集團前端工程師們發起創建的一個開源 JS 框架,具有跨終端、模塊化、使用簡單的特點。里面帶有HTML編輯器這個模塊。
阿里的KISSY
正因為KISSY采取模塊化設計,因此具有高擴展性、組件齊全,接口一致、自主開發、適合多種應用場景等優點。KISSY 除了完備的工具集合諸如 DOM、Event、Ajax、Anim 等,KISSY 還面向團隊協作做了獨特設計,提供了經典的面向對象、動態加載、性能優化解決方案。作為一款全終端支持的 JavaScript 框架,KISSY還 為移動終端做了大量適配和優化,搞移動web開發的可以好好研究一下KISSY的運用。
關于菜鳥手記:
菜鳥最怕就是看大神的攻略,全是術語看頭就頭大!本人作為一名對啥都感興趣的資深菜鳥,潛心研究各類技術二十余年,做網站、寫程序、搞美工、練書法、學畫畫、作文章、抓管理、裝逼格,屬于搞IT里面最懂美工的,搞HR里面最懂畫畫的,搞文字里面最懂程序的,最終一事無成,博而不精,徒留一堆手記。從菜鳥角度寫手記,同樣的”白”更易懂,你值得擁有!感興趣的,請別忘點右角關注菜鳥手記。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。