18

当我第一次阅读 Web 标准课程中不显眼的 JavaScript原理时,我认为这是一件非常棒的事情。

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

此外,不显眼的 JavaScript:

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

  2. 先发制人浏览器不兼容

  3. 使用干净的语义 HTML 层

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

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

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

4

2 回答 2

18

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

  1. JS 作为增强

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

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

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

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

    优雅的降级伴随着这种方法:“只能在一定程度上向后支持,否则你什么都得不到”

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

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

于 2012-05-03T10:02:06.257 回答
3

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

对我来说,这取决于

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

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

于 2012-05-03T09:55:59.797 回答