痛陳Javascript的缺點(diǎn)
先說一些JavaScript中的一些基本性缺點(diǎn)問題。
1:兼容性低
在WWW 上有很多瀏覽器,如Netscape Navigator,Mosaic和HotJava等,但每種瀏覽器支持JavaScript的程度是不一樣的,支持和不完全支持JavaScript的 瀏覽器在瀏覽一個(gè)帶有JavaScript腳本的主頁(yè)時(shí),效果會(huì)有一定的差距,有時(shí)甚至?xí)@示不出來。
結(jié)果,Javascript的開發(fā)人員常常需要針對(duì)不同的瀏覽器開發(fā)不同的版本。無形中工作量增加,而且基本上全都是重復(fù)性的工作。這是我們所不愿意看到的
2:造成內(nèi)存泄漏
JavaScript是內(nèi)存管理的語(yǔ)言。這意味著JavaScript具有內(nèi)置的信息包收集功能,因此能夠抽取不再有引用路徑使用的變量并重新分配這些變量所使用的內(nèi)存。
作為基本工作原理這很好,但是在模型對(duì)象和察看元素之間互相引用時(shí),由于這些循環(huán)引用,你就不能依靠這個(gè)功能來實(shí)現(xiàn)你的內(nèi)存使用***化。從原則上講,對(duì)象為零,則元素為零,但是如果這時(shí)從元素到對(duì)象的向后引用,那么信息包搜集器不會(huì)動(dòng)這些對(duì)象。
現(xiàn)在,問題出來了:在文件對(duì)象模型中,任何文件樹中的DOM節(jié)點(diǎn)都可能被樹中的其它元素引用,不論其是否被其他對(duì)象所引用!因此任何在信息包收集器中經(jīng)過標(biāo)注的被DOM節(jié)點(diǎn)向后引用的對(duì)象,在這一方向必須為空,否則其內(nèi)存就會(huì)一直處于已分配狀態(tài)。而實(shí)際上,程序員常常忽視這點(diǎn)。這就是為什么很多大型網(wǎng)頁(yè)游戲打開后內(nèi)存嗖嗖的往上飚。這是目前被抱怨最多的avaScript的缺點(diǎn)。
3:對(duì)流媒體的支持
無,只能使用內(nèi)嵌其他播放器的方法。
Javascript最初的設(shè)計(jì)目標(biāo)是“讓網(wǎng)頁(yè)動(dòng)起來”。這一點(diǎn),它已經(jīng)實(shí)現(xiàn)了,而且還有一些突破。但是,“動(dòng)起來”只是“動(dòng)起來”,這是不夠的。在Javascript面對(duì)Rich Application的時(shí)候,它就有些力不從心了。
現(xiàn)在,如果要討論javascript的發(fā)展,不應(yīng)該局限于Javascript,而應(yīng)該從HTML(DHTML),DOM,Javascript,CSS聯(lián)合考慮。從瀏覽器應(yīng)用程序(請(qǐng)?jiān)徫野l(fā)明了這個(gè)詞“瀏覽器應(yīng)用程序”)的角度出發(fā)。
【編輯推薦】