【问题标题】:Javascript not enabled未启用 Javascript
【发布时间】:2011-04-01 00:14:47
【问题描述】:

我已经开发 Web 应用程序几年了。我面临的问题之一是必须开发未启用或不可用 javascript 的 Web 应用程序。我知道这是几年前的一个问题,但我很想知道其他网页设计师和开发人员对此问题的看法?这仍然是一个问题吗?

我之所以这么问,是因为在我看来,我们只是在迎合现在不太可能发生的情况。这尤其是关于面向公众的网站和 Web 应用程序?我的评估是否正确?我很想知道其他 Web 开发人员和设计师的经验和学习经验

谢谢。

【问题讨论】:

    标签: javascript asp.net-mvc progressive-enhancement


    【解决方案1】:

    即使在今天,也有一些人(包括我自己)默认关闭了 JS。专业构建的网站要么警告禁用的功能,要么在没有 JS 的情况下工作(通过整页重新加载)。

    【讨论】:

      【解决方案2】:

      我建议您尝试确保您的网站的基本功能在没有 javascript 的情况下可用。

      如果您以这种方式工作,即使您或其他开发人员允许不完美的 JS 进入生产站点,您最终也会得到一个可以正常工作的站点 - 一个严重的 JS 错误不一定会完全停止展示。

      另外:AJAX、效果和其他绒毛可能需要 aaaaaaaages 来调试。用户不介意简单。您的目标应该是简单、缓慢地添加花里胡哨,在添加时进行用户测试,以避免创建令人困惑和错误的 AJAXeffectsFluffy 垃圾堆......

      【讨论】:

        【解决方案3】:

        +1 表示渐进增强。在这里,您可以使用简单的 HTML/CSS 获得基本的、非华而不实的功能,然后获取 JavaScript 代码来补充或用它自己的功能替换该功能。

        例如,如果您在页面上有分页导航,其中包含第 1 页、第 2 页等的简单超链接。

        <div class="paging">
            <ul>
                <li><a href="?page=1">1</a>
                <li><a href="?page=2">2</a>
                <li><a href="?page=3">3</a>
            </ul>
        </div>
        

        然后你就会有 JavaScript 功能来寻找你的 div.paging 元素并用更优雅的东西完全替换它,例如(在伪代码中)

        $('div.paging').each(function()
        {
            $(this).find('ul').remove();
            $(this).append(renderAdvancedPaging());
        });
        

        至于它可以被什么替代,它可能是谷歌图像风格的无限滚动(是的,我知道 Bing 首先有它),或者 Twitter 的方法是在底部有一个大的下一页按钮,动态附加下一组结果(查看http://twitter.com/codinghorror - 向下滚动并点击“更多”)。

        这种“渐进增强”方法的好处是:

        • 适用于禁用 JavaScript 的用户,其中包括精明的用户,以及在严重锁定的公司 Intranet 中工作的用户。
        • 辅助功能:使用屏幕阅读器的盲人用户仍然可以使用您的网站。
        • 不会在您的页面上执行任何 JavaScript 的搜索引擎仍然可以跟踪您的分页链接并索引这些页面的其他内容。

        如果您关心 SEO,最后一点应该是最重要的。


        但是,有时您可以合理地忽略渐进增强并构建一个依赖于 JavaScript 并且没有它就无法运行的网站。您通常会为高级“Web 应用程序”或移动优化的 Web 应用程序执行此操作,例如 Google 地图、日历应用程序、使用 &lt;canvas&gt; 元素的 HTML5 绘图应用程序、支持 HTML5 的游戏等。我的规则,任何“基于内容”的东西(博客网站、新闻网站、电子商务商店等)都应该应用渐进增强,而任何“应用程序-y”都可以使用强制 JavaScript。

        归根结底,这取决于您正在构建什么以及渐进增强路线是否适合您。


        很难获得禁用 JavaScript 人数的统计数据(some here,但它是从 2008 年开始的,this StackOverflow post 从 2008 年开始),但我认为由于越来越多的人数,禁用脚本的可能性越来越小依赖 JavaScript(Google Docs、Maps 等)的 RIA 应用和 HTML5 应用。还要考虑到越来越多的移动互联网设备(iPhone、iPad 等)不允许您禁用 JavaScript。

        【讨论】:

          【解决方案4】:

          渐进式增强!在被 AJAXd 网站困扰太久之后,我几乎总是在禁用 JS 的情况下浏览,所以在添加 JS 功能之前总是从简单的页面加载表单等开始。

          jQuery、mootools 等 JS 框架越来越受欢迎,因为几乎任何人都可以制作带有动画的“闪亮”网站。但我认为越多的人开始使用这些工具,任何常规浏览器都不太愿意启用 JS。

          【讨论】:

            【解决方案5】:

            有些人认为您还需要照顾那些关闭了 CSS 的人。所有这一切都会让你发疯,解释了网络世界的所有“假设”。那些关闭 javascript 的人知道他们的目的是什么,并且对于发现一个因此而无法工作的站点从不会感到惊讶。如果他们知道足以将其关闭,那么他们就足够知道在需要时将其重新打开。

            我认为 Tim Berners-Lee 曾经说过,网络总是可以编写脚本的。脚本挂钩内置于 HTML 中,所有浏览器都使用它。几乎每个人都打开了它,他们应该这样做。充分利用它。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-08-01
              • 2022-07-19
              • 1970-01-01
              • 2016-04-14
              • 1970-01-01
              • 2016-01-31
              • 2012-12-04
              • 1970-01-01
              相关资源
              最近更新 更多