【问题标题】:Is unobtrusive JavaScript outdated? [closed]不显眼的 JavaScript 过时了吗? [关闭]
【发布时间】:2012-05-03 09:44:52
【问题描述】:

当我第一次在 Web Standard Curriculum 中阅读unobtrusive JavaScript 的原理时,我认为这是一件非常棒的事情。

不显眼的 JavaScript 与其说是一种技术,不如说是一种编程哲学。到目前为止,它最重要的组成部分是清楚地了解哪些功能属于哪个层。所有绝对重要的网站功能都应该用纯 HTML 编码,但是一旦你创建了这个基础,你就可以在基础之上添加一个 JavaScript 层,以便为支持它的浏览器提供一个更好、更清洁、更快的界面。

进一步,不显眼的 JavaScript:

  1. 分离结构和行为,以使您的代码 清洁和脚本维护更容易

  2. 预先处理浏览器不兼容问题

  3. 使用干净的语义 HTML 层

对于我当前的项目,我使用这种方法。当我关闭 JavaScript 进行其他一些我必须做的工作时,我很惊讶有多少网站在没有 JavaScript 的情况下完全崩溃:缺少功能,以及缺少很多重要信息,这些信息根本不存在DOM。

这些网站尤其是社交网站。出现这种情况也就不足为奇了,所需的开发时间和用户体验可能比可访问性重要得多。

我仍然在问自己,不显眼的 JavaScript 是否还没有过时。我的意思是哪个浏览器本身不支持 JavaScript?它仍然是适合 2012 年的方法吗?我开始怀疑了。

【问题讨论】:

  • 我认为这取决于网站的类型。新闻网站应该在没有启用 javascript 的情况下显示新闻。我不希望像 google docs 或 facebook 这样的丰富的交互式网站能够正常工作。更重要的是,我不会花额外的钱为一小部分禁用 JavaScript 的人制作交互式网站。
  • @BenClayton 这应该是一个答案
  • 不显眼的 javascript 仍然存在,但很多 webdevs 就是不明白:“如果我不能在我的手机上使用你的网站,我就不会购买。”带有不显眼的 javascript 的网站在我的手机上运行良好,而那些带有琐碎功能的网站则不行。
  • 问题已经结束,所以我不能将其发布为答案,但是:即使在需要 JS 的地方,不显眼的方法仍然具有作为代码组织技术的价值 - 请参阅您的文章中提到的三点上面引用。使用这种方法比将不相关的代码片段分散在 HTML 文档中要好得多。 无论是否有人也采用渐进增强方法都是如此。 (将其视为将样式保存在单独的 .css 文件中的 JS 对应物,而不是将它们全部内联在 HTML 中。)
  • 我认为接受的答案非常好,我不得不问,为什么这个问题被关闭为“不具建设性”?它非常具有建设性,并且越来越相关,并且非常适合挑战一些经常重复和经常被误解的口头禅。

标签: javascript web accessibility paradigms


【解决方案1】:

访问网站和使用JS有两种方式:

  1. JS 作为增强

    这些类型的网站在某种意义上类似于“文档”,类似于报纸、书籍和信件。您不需要花哨的效果来阅读和使用内容。随之而来的是渐进式增强:在不牺牲目的的情况下构建基本功能并增加复杂性

    大多数(大型)网站都使用此方案来保持其有用性,即使在使用无功能浏览器时也是如此。 StackOverflow 就是一个例子,它甚至可以在 lynx 命令行浏览器上运行!

     ______
    | JS   | - JavaScript for (optional) enhancements
    |------|
    | CSS  | - CSS for (optional) style
    |------|
    | HTML | - (mandatory) HTML with base content
    '------'
    
  2. JS 作为一个平台

    对于网络应用程序,它们基于 JS 构建以提供实时、动态的内容和功能是合理的(更像是强制性的),而 HTML 和 CSS 用作视图。它是其他编程语言的同义词,您可以在其中“无头”地使用您的程序(无 UI),如库和插件。

    这种方法会带来优雅的降级:“仅在一定程度上向后支持,否则你将一无所获”

     ____________
    | HTML | CSS | - (optional) HTML and CSS view
    |------------|
    |     JS     | - (mandatory) JS platform
    '------------'
    

它通常归结为“它是文档还是应用程序?”的问题

【讨论】:

    【解决方案2】:

    不同的公司采取不同的方法。例如,Google 的搜索使用不显眼的 javascript,可以优雅地降级,但对于 GMail,他们维护了一个单独的仅 HTML 站点,他们后来在 GMail JS 版本之后开发了该站点。

    对我来说,这取决于

    1. 复杂性
    2. 功能性,
    3. 成本
    4. 受影响的用户数

    决定是使用不显眼的 JS 进行优雅降级,还是构建一个专用的仅 HTML 站点,或者完全忽略该用户群。

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 2010-09-15
      • 2012-07-09
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 2013-04-05
      相关资源
      最近更新 更多