4

I have been developing web applications for a few years now. One of the issues that I face is having to develop web apps where javascript is not enabled or not available. I know this was a issue a few year back but am curious to know what other web designers, developers think about this issue? Is that still an issue?

The reason I am asking this is because it seems to me we are just catering for scenarios that is very unlikely to happen now a days. This is especially with regards to public facing websites and web applications? Am I right in my assessment? I am keen to know the experiences and any learnings of other web developers and designers

Thanks.

4

5 回答 5

2

+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 地图、日历应用程序、使用该<canvas>元素的 HTML5 绘图应用程序、支持 HTML5 的游戏等。我的规则,任何“内容”基于”(博客网站、新闻网站、电子商务商店等)应该应用渐进增强,而任何“应用程序-y”都可以使用强制 JavaScript。

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


禁用 JavaScript 的人数统计数据很难获得(这里有一些,但它来自 2008 年,还有这个 StackOverflow 帖子来自 2008 年),但我认为由于 RIA 应用程序和依赖 JavaScript 的 HTML5 应用程序(Google Docs、Maps 等)。还要考虑到越来越多的移动互联网设备(iPhone、iPad 等)不允许您禁用 JavaScript。

于 2010-08-19T10:07:23.273 回答
2

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

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

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

于 2010-08-19T08:52:47.677 回答
2

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

于 2010-08-19T08:55:19.370 回答
1

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

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

于 2010-08-19T09:13:46.510 回答
0

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

我认为是蒂姆·伯纳斯-李曾经说过网络总是可以编写脚本的。脚本挂钩内置于 HTML 中,所有浏览器都使用它。几乎每个人都打开了它,他们应该这样做。使用它来发挥你的优势。

于 2010-08-19T11:09:46.277 回答