问题标签 [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 投票
1 回答
213 浏览

python - 在 Django 表单中处理优雅降级

我有一个类似于以下的表格(为简洁起见):

最初,出于优雅降级的目的,只有定价是可见的。如果用户启用了 javascript,我会隐藏定价并使定价类型可见。现在,在pricing_type单选选项中,我将pricing_flat_costpricing_percent_off 设为可见。这使得 UI 更加精确和用户友好。

我的问题:我应该如何编写逻辑来确定从何处获取值——RegexField 或pricing_flat_pricepricing_percent_off字段?我是否应该在ItemForm中创建一个函数来计算它并返回正确的值?

或者也许有人可以建议一种更清洁的方法?

0 投票
5 回答
433 浏览

html - 支持旧浏览器有多重要?

刚刚阅读了 yahoo 的 Nicholas C. Zakas 的一篇有趣的文章:什么是网络浏览器?

您如何在实现 HTML5 和 CSS3 等新技术的同时保持对 ie 6 等浏览器的支持的最佳平衡,这是必须满足最后期限的日常 Web 开发的实用方法吗?

0 投票
1 回答
266 浏览

ajax - HTTP POST 和优雅降级

我有一个 Web 应用程序,其中包含使用 Ajax 回调创建的项目表。表格顶部的一堆表单字段允许我根据各种条件过滤将在表格中显示的项目并显示它。

表格的某些部分有项目列表,旁边标有 [X],我可以通过单击这些项目来删除这些项目。

现在,如果我以非 ajax/javascript 方式执行此操作,页面将收到一堆 POSTed 数据字段,然后相应地呈现表格。我可以做到这一点,但我也想 Ajaxify 整个设置。我的问题是关于这个的。

  1. 我将如何创建 [X] 按钮。一个简单<a>的“工作”,但它是一个 GET 修改状态,所以我不想这样做。我现在这样做的方式是一个带有隐藏参数的小表单,而不是保存要删除的项目和一个样式化的提交按钮,即 [x]。如果我对此进行 ajaxify 处理,我可以获得响应并做必要的事情。

  2. 如何保持后端干燥?我不希望 Ajaxified 版本和常规版本有两个完全不同的代码。我现在正在做的是让非 ajax 版本提交到更改状态的 URL,然后再次重定向到主页(类似于 PRG 类型系统)。启用 Ajax 后,我只需调用 URL 并忽略重定向,而是使用返回的数据来调整表格。这是“正确的方法”吗?

  3. 关于如何保持我的后端干燥的优雅降级的任何其他建议?

0 投票
5 回答
6867 浏览

python - Python:用一些不可腌制的物品腌制一个字典

我有一个gui_project具有属性的对象.namespace,它是一个命名空间字典。(即从字符串到对象的字典。)

(这用于类似 IDE 的程序中,让用户在 Python shell 中定义自己的对象。)

我想腌制 thisgui_project以及命名空间。问题是,命名空间中的某些对象(即.namespace字典的值)不是可腌制对象。例如,其中一些引用 wxPython 小部件。

我想过滤掉不可腌制的对象,即从腌制版本中排除它们。

我怎样才能做到这一点?

(我尝试过的一件事是逐个处理这些值并尝试腌制它们,但是发生了一些无限递归,我需要避免这种情况。)

(我现在确实实现了一种GuiProject.__getstate__方法,以摆脱除 . 之外的其他不可腌制的东西namespace。)

0 投票
5 回答
1470 浏览

javascript - 如何隐藏未被包围的某些html

#xA;

I tried surrounding <fancy-jquery-ajaxy-html> with a <script type="text/javascript"></script> but then nothing from that section is displayed even for users with javascript enabled.

But what I want to do is hide that <fancy-jquery-ajax-html> section only if the user doesn't have javascript enabled.

It contains content that is useless to someone without javascript turned on, so it shouldn't be shown at all.

A user with javascript disabled should only see a message saying that the page can't be viewed without javascript.

Is there a way do that?

0 投票
2 回答
916 浏览

javascript - 我应该如何为有和没有 javascript 支持的浏览器编写 Jquery Mobile 应用程序?

我正试图围绕 jQuery Mobile。我的目标是构建一个非常快速的应用程序,其外观和感觉尽可能接近原生应用程序(至少对于现代设备而言)。

我了解在页面之间导航有两种方式:

  1. 将每个页面加载为单独的页面,并使用常规 html 锚链接到其他页面。

  2. 将所有(或多个)页面放在一个网页上,并通过 javascript($.mobile.changePage(方法)和类似的 api 函数)在它们之间导航。

第一种方法应该适用于所有浏览器,但性能很差,因为每个页面转换之间存在延迟。

第二个看起来应该快得多,所以我肯定更喜欢这种方法。但是,对于没有 javascript 支持的移动设备浏览器,这将如何工作呢?这显然违背了 jQuery Mobile 为 C 级浏览器提供优雅降级体验的目标。

在我看来,我需要实现我的应用程序两次,一次针对支持 javascript 的浏览器进行优化,一次针对不支持的浏览器进行优化?使用可能是另一种选择,但这看起来更加混乱。

解决这个困境的推荐方法是什么?有什么我没有注意到的吗?

谢谢,

阿德里安

0 投票
6 回答
984 浏览

javascript - 2011年真的还需要降级js吗?

严肃的问题。

我尝试了大多数著名的网站(包括 facebook),我可以说在禁用 js 的情况下,大量的功能根本不会降级。我一直被告知 js 应该优雅地降级,但这在当今时代仍然适用吗?

几个站点正在放弃对ie6的支持,并且大多数web2.0严重依赖js(尤其是ajax,我什至发现一些站点不允许您在未启用js的情况下登录)。

你对此有什么看法?

编辑:

我想补充一点,我首先在没有 js 的情况下开发 webapps,然后用它来增强它们。问题是 js 年复一年地越来越多地成为网络的一部分。HTML5、canvas 和重型 js 应用开始兴起。我们会达到大多数网站都强制使用 js 的程度吗?我谈到了 facebook,因为该网站实际上会降级并且可以在没有 js 的情况下使用,但是大多数功能和快捷方式都被剥夺了网站感觉枯燥和陈旧的地步。也有 js 比服务器端脚本更好的例子,例如大表的排序比 php 实现更快,服务器密集度更低。

ps 我不知道如何使它成为一个社区 wiki,但我会的,我只是对您的意见感兴趣。

0 投票
3 回答
488 浏览

javascript - jQuery HTML 锚标记渐进增强

我有我写的 jQuery,它应该找到一个特定的<a>标签并改变它的行为。在 jQuery 加载之前,<a>标签有一个指向另一个页面的 href 属性。我正在使用 jQuery 来更改<a>标记的行为,以便它不是指示浏览器加载其他页面,而是在单击时运行 javascript,在<div>位于鼠标指针位置的 a 中动态加载内容。

因此,例如,我有以下内容:

我运行的 jQuery 执行以下操作:

})

遇到的问题是:每当用户单击链接时,浏览器都会作用于该href="#"属性并将浏览器滚动到页面顶部。使我的网站完全不滚动,而只是执行我为点击事件编写的 jQuery 代码的最“正确”方法是什么?

0 投票
1 回答
2951 浏览

javascript - 使用 javascript 为用户延迟加载内容的更好方法是什么?

我有一个包含大量图像和其他代码的页面,如果延迟加载会更好。

我一直在尝试使用 noscript 标记来执行此操作,但我只是注意到它在 IE 中无法正常工作。它适用于我测试过的所有其他浏览器(ff、opera、chrome、safari 等),所以我有点沮丧。

我很确定在某一时刻我实际上在 IE 中工作过,因为我已经使用该技术有一段时间了,而且我经常测试 IE ......但它现在不起作用,我谷歌似乎建议的一切它从来没有奏效。

这是一个简单的复制和粘贴示例,显示了我正在尝试的内容:

使用 javascript 和没有 javascript 的用户使用的 html 是相同的。我只是使用 jquery 来标记内容以使其更易于查看。由于内容是用 javascript 标记的,因此在打开选项卡时需要延迟加载,因此当页面有相当大的附件时,最初下载不需要很长时间。

如何在不多次输出 html 的情况下实现这一点?

0 投票
1 回答
812 浏览

jquery - 如何优雅地从 Jquery carousel 降级为 css 滚动列表

更新

我在下面的脚本中添加了这两行:我运行了调试器,执行似乎正在删除属性,但网页继续显示滚动条。


-- 在 IE8 中是我现在最关心的问题 --

您好,在我们的主页上有一个垂直滚动的轮播。我想要做的是让它优雅地失败,如果关闭了 javascript,则只能使用 css。因此结果是带有垂直滚动条的文本,用户可以单击并拖动以在列表中移动。类似于您在 textarea 元素上发现的内容,它有太多数据无法一次显示。

链接到主页。 http://beta.sc-pa.com/home/pasite-home.asp

一旦完成。