BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

针对非正式HTML6提案“无需JavaScript的单页应用”引发的论战

| 作者 James Chesters 关注 2 他的粉丝 ,译者 夏雪 关注 0 他的粉丝 发布于 2015年3月27日. 估计阅读时间: 11 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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>

有些人对Mozumder的提案提出了置疑。

Brian Kardell是JavaScript polyfill 引擎 HitchJS 的联合作者,他回应说“我们实际上之前也做过一些尝试,而且你现在并没有这么用它,所以我们想要说,恐怕在某种程度上讲它是无法成功的。”

Kardell持续说:

我打算针对此评论提出几点重要的理由,解释一下如果我们现在这么做的话,为什么它会失败,为什么我认为无法用它带来更多的成功……现在这些虽然远远看上去已经具备条件了,还实际上条件还不太充分,在此类问题上规范的body就是个非常大的麻烦。

尽管有不同的意见,然而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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

javascript确实不让我喜欢 by 志军 刘

javascript确实不让我喜欢

Re: javascript确实不让我喜欢 by Yu Fisher

但用HTML来做这些事情,想想就让人更不喜欢。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT