針對非正式HTML6提案“無需JavaScript的單頁應用”引發的論戰

jopen 9年前發布 | 19K 次閱讀 HTML6

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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!