问题标签 [graceful-degradation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
375 浏览

javascript - 如果启用 JavaScript,如何在网页上生成不同的链接?

我正在尝试遵循不显眼的 JavaScript / 优雅降级的技术。我想在打开 JavaScript 和关闭 JavaScript 时提供具有不同链接的页面。

例如,当 JavaScript 关闭时,链接将是

当 JavaScript 打开时

(或类似的东西)。

链接的两个版本(带有 JavaScript 和不带 JavaScript)都指向服务器端脚本,但参数不同。当 JavaScript 关闭时要调用的版本在服务器上执行得更多,因此在那里检测 JavaScript 将是无效的(例如,从非 JavaScript 的服务器脚本通过重定向到另一个版本window.location)。

注意:我更喜欢不使用 jQuery 等 JavaScript 库/框架的解决方案。

0 投票
15 回答
1300 浏览

javascript - 在没有 JavaScript 的情况下优雅降级仍然有用吗?

当甚至移动浏览器都有 JavaScript 时,是否真的有必要考虑潜在的无脚本用户?

0 投票
7 回答
2780 浏览

java - 如何在针对 Java 1.5 优雅降级时引用 Java 1.6 API?

我想使用 Java 1.6 中的java.text.Normalizer类进行 Unicode 规范化,但我的代码必须能够在 Java 1.5 上运行。

我不介意在 1.5 上运行的代码是否不进行规范化,但我不希望它在运行时给出NoClassDefFoundErrors 或ClassNotFoundExceptions 。

实现这一目标的最佳方法是什么?

0 投票
6 回答
432 浏览

javascript - 为javascript脚本支持和不支持设计一个网站

好的,我知道您的网站在禁用 javascript 的情况下正常工作很重要。

在我看来,开始考虑如何设计此类网站的一种方法是在主页上检测 javascript,如果未启用,则重定向到没有 javascript 代码并使用纯 html(如 gmail)的网站的另一个版本

我想到的另一种方法是,例如在网页上的对话框中考虑一个 X(关闭按钮)。如果在没有任何 javascript 干扰的情况下按下 X 会导致向服务器发送请求,并且在服务器端我们在下次渲染页面时隐藏该对话框,并且我们将 javascript 函数绑定到链接的 onclick 并且以防万一启用 javascript 它将立即隐藏对话框。

你觉得这怎么样?您将如何设计一个网站来支持两者?

0 投票
3 回答
1350 浏览

python - Python中的优雅降级酸洗

(您可能会阅读问题以了解一些背景)

我想有一种优雅的降级方式来在 Python 中腌制对象。

当pickle一个对象时,我们称它为main object,有时Pickler会抛出一个异常,因为它不能pickle主对象的某个子对象。例如,我经常遇到的一个错误是“不能腌制模块对象”。那是因为我从主对象引用了一个模块。

我知道我可以写一些东西来用包含模块属性的外观替换该模块,但这会有其自身的问题(1)。

所以我想要的是一个酸洗功能,它会自动将模块(以及任何其他难以酸洗的对象)替换为包含其属性的外观。这可能不会产生完美的酸洗,但在许多情况下就足够了。

有这样的吗?有谁知道如何解决这个问题?


(1) 一个问题是该模块可能在其中引用其他模块。

0 投票
4 回答
1841 浏览

html - 提交链接 - 没有 Javascript:缺点?

前几天我发现了一个启示。在尝试使用图像创建提交按钮时,我遇到了图像未显示但value文本显示的问题。当时,这不是我想要的,但现在,当我回首往事时,我看到了它的一些潜在用途。

如果您需要将数据发送到另一个页面,但都不需要用户输入,您可以通过链接(或表单)GET或通过表单发送数据POST。问题是前者创建了丑陋的 URL,而后者需要一个submit看起来不合适的按钮。当然,我可以想出一个图像,但如果我只是想要可选择的文本怎么办。

所以,我开始玩了一下,Firefox 似乎按照我的意愿呈现以下内容,作为提交表单的可点击链接。您所要做的就是从标签中删除src属性:input type='image'

此解决方案是否适用于其他浏览器?这样做有什么缺点(除了链接 CSS 应用不正确这一明显事实)?

0 投票
3 回答
485 浏览

javascript - Javascript Ajax 优雅降级,具有不同的页面?

我开始更加关注让我的 javascript 和 ajax 优雅地降级。哪个更推荐:

  • 致力于将优雅降级合并到您现有的代码中(可能很棘手)或
  • 为非 js 用户开发一组不同的页面。

我倾向于使用不同的页面集,因为我觉得它更容易,并且我可以为每种用户类型(启用 js 或禁用 js)提供最佳结果。你同意我的观点吗?如果不同意,你为什么不同意?

我也担心黑客攻击。例如,黑客进入启用 js 的版本,然后禁用他的 js。关于这一点有什么想法吗?我不太了解黑客攻击,但是如果我使用单独的版本,这会是一个安全问题吗?

提前致谢

0 投票
2 回答
331 浏览

bash - 终端上 globbing 的优雅降级

每当 glob 模式匹配失败时,它就会停止整个工作。例如,

*.png 没有移动到 folder1 并且 blahblah 没有运行。

下面的脚本仅适用于 .[Az]* 和 * 都成功的情况。

如何优雅地使 globbing 失败,最多只显示警告,但从不停止工作?

0 投票
1 回答
65 浏览

javascript - 询问客户以确定执行能力的信息?

我正在寻找有关询问当前用户客户端的经过验证的过程的信息,并可能对代码片段进行基准测试,以确定客户端执行某些类型代码的效率。

显然,尽可能高效地编写代码是不变的目标。然而,某些功能和效果往往会降低低端机器的体验。使用基准信息,可以逐个用户禁用某些效果(褪色等),以增加属性/应用程序的体验。

如果您不知道这方面的任何信息,您对如何完成有想法吗?

谢谢

0 投票
3 回答
425 浏览

javascript - 锚定 AJAX 和 SEO 解决方法?

你们都知道如何使用那些 300 毫秒的触发器来构建 AJAX 站点,以检查 URL 中的锚点(哈希链接),然后使用 AJAX 加载正确的页面。但是,这些锚链接对搜索引擎来说毫无意义 =(

我想过做一些解决方法。所有 JS 代码都保持不变,但是,这个小东西(我使用 JQuery,抱歉):

然后,将正文中的锚链接替换为普通链接,为非 JavaScript 用户和搜索引擎构建相应的普通页面(仍然包含所有 JS 代码)。对于普通访问者,您可以将普通链接即时转换为哈希值并立即加载 AJAX 内容。对于那些试图加载通过搜索引擎找到的某些页面的人 - 他们会,之后访问者将继续使用 ajax 导航......不知何故(请记住,那些普通的直接页面仍然包含 JS 代码)。

我只是想确保我的假设是正确的。他们是吗?

更新:不好的是,当用户使用 for ex 直接进入一些内部页面时。/portfolio地址,然后他会继续使用/portfolio#contacts或类似的 URL,这些 URL 不是很漂亮,但仍然有效(我的意思是/portfolio#contacts会显示联系人)。