針對非正式HTML6提案“無需JavaScript的單頁應用”引發的論戰
在W3.org上出現了一個非正式的“HTML6”提案,就此引起論戰。
Bobby Mozumder是時尚媒體企業公司 Future Claw的創始人,他向W3.orgm郵件列表提交了針對“無需JavaScript的單頁應用”的非正式HTML6提案。
Mozumder說,它的目標是“不必加載JavaScript的高速響應的web體驗”。
像這種體驗大概可以無需JavaScript,“通過鏈接錨元素到JSON/XML(或者新的定義)api端點,讓瀏覽器內部加載數據到新的數據結構中,然后瀏覽器將按需加載到的數據替換成DOM元素”,Mozumder說。
他詳細闡述:
所有前端JavaScript框架都涌現出一個標準的設計模式,那就是以JSON API動態加載內容。這是單頁應用web設計模式。大家之所以這么做是因為它的響應比全頁加載快了很多,用API加載需要10-50ms,但加載整個 HTML頁面則需要300-1500ms。
既然現在這種做法如此普遍了,那么我們可以在瀏覽器中直接通過HTML來實現,讓用戶可以動態運行沒有Javascript的單頁應用嗎?HTML由此變成一種模版語言,夾具中的所有內容無需Javascript即可動態地加載。
web頁面示例:
<DOCTYPE html> <HTML LANG=“en”> <HEAD> <FIXTURES lang=“xml”> <model class=“MyArticleData”> <rsp stat=“ok"> <article label=“one” id=“1"> <headline>"Big News!”</headline> <body>"<p>This is the first article intro.</p><p>This is the second paragraph.</p>"</body> </article> <article label=“two” id=“2"> <headline>"Not so big news"</headline> <body>"<p>This is the <em>second</em> article.</p>"</body> </article> </rsp> </model> <model class=“MyImageData”> <rsp stat=“ok"> <image label="Square" width="75" height="75" source="https://mycontentserver.com/image_s.jpg" id=“3"/> <image label=“Tall" width=“300" height=“200" source="https://mycontentserver.com/image_l.jpg" id=“4"/> </rsp> <rsp stat=“loading"> <image label="Square" width="75" height="75" source="https://mycontentserver.com/loading_image_s.jpg" id=“1"/> </rsp> <rsp stat=“some_error"> <image label="Square" width="75" height="75" source="https://mycontentserver.com/error_image_s.jpg" id=“2"/> <message </rsp> </model> </FIXTURES> </HEAD> <BODY> <MENU class=“controller”> <A href=“http://api.mywebsite.com/api/load-new-article” model=“MyArticleData">Click here to replace the articles with different articles.</A> <A href=“http://api.mywebsite.com/api/load-new-image” model=“MyImageData">Click here to replace the picture with a different picture.</A> </MENU> <MAIN class=“viewer”> <ARTICLE class=“center"> <H1 model=“MyArticleData.rsp.article(label=‘one’).headline” /> <SPAN model="MyArticleData.rsp.article(label=’one’).body” /> </ARTICLE> <ARTICLE class=“sidebar"> <H1 model=“MyArticleData.rsp.article(label=’two’).headline” /> <SPAN model=“MyArticleData.rsp.article(label=’two’).body” /> </ARTICLE> <IMG src=“model:MyImageData.rsp.image(label=‘Square’)#source” width=“model:MyImageData.rsp.image(label=‘Square’)#width” height=“model:MyImageData.rsp.image(label=’Square’)#height”> </MAIN> </BODY> </HTML>
</blockquote>有些人對Mozumder的提案提出了置疑。
Brian Kardell是JavaScript polyfill 引擎 HitchJS 的聯合作者,他回應說“我們實際上之前也做過一些嘗試,而且你現在并沒有這么用它,所以我們想要說,恐怕在某種程度上講它是無法成功的。”
Kardell持續說:
我打算針對此評論提出幾點重要的理由,解釋一下如果我們現在這么做的話,為什么它會失敗,為什么我認為無法用它帶來更多的成功……現在這些雖然遠遠看上去已經具備條件了,還實際上條件還不太充分,在此類問題上規范的body就是個非常大的麻煩。
</blockquote>盡管有不同的意見,然而Mozumder提到說,他這個提案已經被“瘋傳”了。為什么這個想法會得到如何廣泛的分享呢,Mozumder解釋說“成千上萬次的分享、轉發、點贊等等等等……看起來很多人都想要這樣的解決方案。我也不知道為什么會這樣,但我相信這表示人們已經對不得不使用JavaScript框架極為不滿了。”
網上很多圍繞Mozumder的提案的討論持有否定的意見。
在 Hacker News上,相關的討論已經被點贊180多次了,但許多評論并不同意這個提案。
用戶jkoudys 說 “這個提案正試圖拿出一個通用的web設計模式(MVC),并作為官方規范的一部分。HTML是一種標記語言,讓它去做語義語言該干的事是十分可笑的。”
同樣的,用戶 outsidetheparty 說“這是非常糟糕的想法——與HTML之前的版本保持向下兼容是一個很好的檢驗方法,檢驗一個提案是不是徹底想清楚了。最主要的是它無法解決任何已有的問題。我們已經可以做到這個提案能做的所有事,這個提案只會讓這些變得更加的死板。
也并非所有的評論都完成否定Mozumder的提案, Milo Mordaunt 說,雖然這個想法“很有意思”,但他覺得HTML應該“保持針對模版的嚴謹性”,這個針對無需JavaScript的單頁應用的提案增加了大量不必要的邏輯。
萬維網聯盟尚未就Mozumder提交到W3.org郵件列表中的提案給出官方的回應,這份提案也尚未收到聯盟的支持。
查看英文原文:Informal HTML6 Proposal for "Single-page Apps Without JavaScript" Attracts Controversy
來自:http://www.infoq.com/cn/news/2015/03/html6-without-javascript本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!