关于对cross-browser支持的一些看法
??? 做dhtml開發(fā),除了調(diào)試不是十分的方便外,我們還需要或多或少的考慮同一瀏覽器的版本問題。而比這些問題更讓復(fù)雜dhtml開發(fā)郁悶的,卻是對cross-browser瀏覽的支持。正好有人問到這個(gè)問題,我就簡單的說說我的看法。
??? 目前我是專做IE上的dhtml開發(fā),所以我blog里的腳本開發(fā)分類都叫做"JScript&DHTML",而不是叫做"JavaScript&DHTML",也就是說我默認(rèn)提供的事例講解和代碼示例都以JScript為準(zhǔn),因?yàn)槲椰F(xiàn)在的工作也沒有時(shí)間和必要讓我去別的瀏覽器上驗(yàn)證我所發(fā)的腳本。如果有寫JavaScript的地方,那就是我確認(rèn)那部分內(nèi)容JScript和JavaScript是兼容的。
??? 關(guān)于cross-browser其實(shí)細(xì)說起來分為兩類。第一類是狹義的cross-browser,就是說瀏覽器的內(nèi)核版本之間的腳本代碼及DOM版本實(shí)現(xiàn)上的兼容性支持(這里包括同內(nèi)核瀏覽器比如:MyIE現(xiàn)在叫Maxthon遨游,昵稱:馬桶、Sleipnir、GreenBrowser簡稱GB、GoSuRF、kkman等的內(nèi)核版本);第二類是廣義的cross-brower,指的是瀏覽器內(nèi)核不同實(shí)現(xiàn)間的腳本代碼及DOM兼容性支持。前者的代表就是我們常說的IE5、IE5.5及IE6.0甚至IE6.0sp1這樣的瀏覽器之間的差別,后者就是諸如:IE、Opera、Mozilla、Firefox、Netscape、Konqueror、Safari和iCab等。
??? 我們接觸到的狹義cross-browser支持,大多是在IE上開發(fā)dhtml功能,由于IE從4.0到6.0sp1之間對JScript引擎和DOM實(shí)現(xiàn)做了較大的修正和改進(jìn)(有的是實(shí)現(xiàn)了更高的w3c標(biāo)準(zhǔn)版本)。當(dāng)然別的瀏覽器也同樣有這樣的問題,比如Netscape從2.0b3到4.0版本,經(jīng)歷了將JavaScript引入瀏覽器并達(dá)到一個(gè)可用水平的變化。這樣的cross-browser更象是做軟件的向后兼容,但是這樣的問題一般不會太麻煩,畢竟要求用戶升級同一種軟件,而不是完全更換是比較容易讓人接受的。另外同一瀏覽器的升級畢竟還是在其原有的設(shè)計(jì)框架上,而不會帶來整個(gè)結(jié)構(gòu)翻天覆地的變化。不會像今天的IE和ff,它們在Script和DOM處理上的不同,真是讓人巨郁悶,以后我會再討論。
??? 那么廣義的cross-browser我又把它分為以下幾種情況,一是Portal類的網(wǎng)站(包括各種門戶以及各類機(jī)關(guān)、公司、組織等的官方信息發(fā)布的網(wǎng)站),二是普通網(wǎng)站(包括論壇、個(gè)人網(wǎng)站、blog,以及一些不十分正式和重要的信息發(fā)布網(wǎng)站),三是專用網(wǎng)站(包括各種部門級信息網(wǎng)站、企業(yè)ERP網(wǎng)站、OA系統(tǒng)等專有系統(tǒng)網(wǎng)站)。
??? 從上面的簡單分類就能看出,cross-browser支持任務(wù)最嚴(yán)峻的就是第一類Portal網(wǎng)站了,而且這類網(wǎng)站還沒有辦法逃避。當(dāng)然是不是只要是這類網(wǎng)站就一定要支持cross-browser呢?其實(shí)這個(gè)完全是和建網(wǎng)站的人對網(wǎng)站的期望有關(guān)系的,就是說你希望你的網(wǎng)站能給帶來什么CI來決定的。比如Google,它的Gmail的Web瀏覽方式被很多人認(rèn)同,可是那個(gè)Pretty的Web Mail是一個(gè)非常復(fù)雜的dhtml開發(fā)工程。反過來,如果Gmail不能支持cross-browser,那么Google是不是給人感覺很矬呢?另一個(gè)相反的情況是,很多的xxx.gov.cn網(wǎng)站,根據(jù)其重要性來看它們完全因該屬于第一類,可是它們很多卻沒有很好的支持cross-browser。這就是他們對網(wǎng)站的期望不高,沒有覺得網(wǎng)站能給他們帶來什么好處,而只是為建網(wǎng)站而建網(wǎng)站。同時(shí),沒有任何人能說由于某xxx.gov.cn做的象一坨屎,就要他們領(lǐng)導(dǎo)下課。
??? 第二類普通網(wǎng)站,對于cross-browser來說其實(shí)是可支持也可不支持的。當(dāng)然都能支持是最好的了,可是那需要成本的啊。不是大聲說:支持!支持!!支持!!!,就自己支持了。這里面的論壇類網(wǎng)站,為了自己能有更多的潛在用戶訪問或注冊,是會積極主動的支持cross-browser。當(dāng)然這里的論壇也分很多種類型,如果是專注于Windows平臺技術(shù)開發(fā),我覺得對cross-browser做有限的支持也就足夠了。至于其它的小站點(diǎn),除非是為了展示dhtml技術(shù)和JavaScript特效,否這也應(yīng)該做有限的cross-browser支持,當(dāng)然程度可以更低一些。
??? 第三類專用網(wǎng)站,這個(gè)需要根據(jù)其復(fù)雜度來區(qū)分,如果dhtml技術(shù)僅限于表單校驗(yàn)和一些簡單的網(wǎng)頁特效,這樣的系統(tǒng)是應(yīng)該支持cross-browser的。如果系統(tǒng)中有很復(fù)雜的dhtml開發(fā),比如像Gmail,就需要仔細(xì)考慮是否支持cross-browser了。對于企業(yè)部署,其實(shí)用戶習(xí)慣是可以教育的,就是要求使用IE6,甚至更過分就要求IE6sp1,很多時(shí)候都是不難辦到的。對于這樣的系統(tǒng),如果dhtml難度還很大,而且完全不能說服用戶,他就是要IE,并且至少firefox是要支持的。那么怎么辦呢?那就申請更多的resource,支持就是了。
??? 最后說漏了一點(diǎn),關(guān)于Web控件的開發(fā),由于作者的期望是自己的控件被廣泛的使用,所以它支持cross-browser的出發(fā)點(diǎn),和前面說的論壇類網(wǎng)站的出發(fā)點(diǎn)其實(shí)是相似的。有空了再討論一下不同復(fù)雜度的dhtml開發(fā)時(shí)cross-browser支持解決方案。
總結(jié)
以上是生活随笔為你收集整理的关于对cross-browser支持的一些看法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今晚解决了ActiveSync不能连接到
- 下一篇: .net事务的困扰,请大虾指点。