标签: graceful-degradation

如何在禁用Javascript的情况下让我的UI"优雅地降级"?

我已经在SO上阅读了多篇文章,如果用户禁用了Javascript,理想情况下,您的页面应该"优雅地降级".我不确定一般来说应该做些什么类型的事情来实现这一目标.

我有一大堆HTML用于配置'计划'.根据选择框的值,将显示不同的字段.

<select name="schedule.frequency"
    id="schedule.frequency" 
    onChange='updateScheduleFields()' >
        <option value="Manual">Run Manually</option>
        <option value="Monthly">Monthly</option>
        <option value="Weekly">Weekly</option>
        <option value="Daily">Daily</option>
        <option value="Hourly">Hourly</option>
</select>
Run Code Online (Sandbox Code Playgroud)

更新选择后,我隐藏显示的字段,以便在不合适时不显示"星期几"或"月中的日期"等字段.我不确定如何在没有Javascript的情况下优雅地降低这种性能,因为如上所述,某些字段对于各种计划类型来说完全不合适.

我的问题是:一般来说,如果没有Javascript,我将如何制作禁用/隐藏不适当字段的内容或者某些前/后处理是否会正常降级?

我也对我能看到的可以处理这种退化的特定网站感兴趣吗?

javascript graceful-degradation

4
推荐指数
1
解决办法
1740
查看次数

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

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

  • 努力将优雅降级纳入现有代码(可能很棘手)或
  • 为非js用户开发不同的页面集.

我倾向于不同的页面集,因为我觉得它更容易,我可以为每种用户类型(js-enabled或js-disabled)提供最佳结果.你同意我的意见吗,如果没有,你为什么不同意?

我也担心黑客攻击.例如,黑客进入启用js的版本,然后禁用他的js.关于这一点的任何想法?我不太了解黑客攻击,但如果我使用不同的版本,这可能是一个安全问题吗?

提前致谢

javascript ajax graceful-degradation

3
推荐指数
1
解决办法
472
查看次数

&lt;noscript&gt; 或其他东西

我有一个严重依赖 JavaScript 并在整个过程中使用 jQuery 的网站。

我不会试图让网站为那些没有启用 JavaScript 的人工作。

但是,我想在页面顶部显示一个横幅,告诉他们该站点旨在启用 JavaScript 以及可能是现代浏览器等。

我正在考虑在所有包含带有横幅的 <noscript> 的页面上放置一个 PHP 包含。这是好的方法还是有更好的方法?

javascript cross-browser graceful-degradation

3
推荐指数
1
解决办法
3542
查看次数

没有Javascript的BrowserID(最好是Python) - 是否可能?

BrowserID目前使用Javascript垫片,而浏览器仍然(希望)开发支持它.对于不运行javascript的客户端,是否可以使用BrowserID?

可以阅读600行JS shim,找出navigator.id.getVerifiedEmail要做的事情,然后在服务器上复制它,但我希望有一种更简单的方法.即便如此,我认为它不会真的奏效.

好吧,深入挖掘一下,这似乎是BrowserID意图做的外围设备,可能需要一些自定义的BrowserID验证器,但我希望有一种更简单的方法.

python graceful-degradation noscript browserid

3
推荐指数
1
解决办法
474
查看次数

为javascript脚本支持而不是支持设计网站

好的,我知道你的网站在禁用javascript时工作正常非常重要.

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

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

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

html javascript jquery progressive-enhancement graceful-degradation

2
推荐指数
1
解决办法
415
查看次数

终端上的globbing的优雅降级

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

$ mv *.jpg *.png folder1 && blahblah
mv: cannot stat `*.jpg': No such file or directory
Run Code Online (Sandbox Code Playgroud)

*.png未移至folder1且未运行blahblah.

并且下面的脚本仅适用于两者的情况.[Az]*和*成功.

#!/bin/bash
cd $1
du -sk .[A-z]* *| sort -rn | head
Run Code Online (Sandbox Code Playgroud)

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

bash shell terminal glob graceful-degradation

2
推荐指数
1
解决办法
319
查看次数

在不支持它的浏览器中,html5 required属性是否会优雅地降级?

我喜欢required在表单上使用该属性,但我不知道旧浏览器如何处理这个(对他们来说)未知的属性.

旧版浏览器是否会很好地忽略(从而允许优雅地降级)html5 required属性?

html5 attributes cross-browser graceful-degradation

2
推荐指数
1
解决办法
272
查看次数

2
推荐指数
1
解决办法
801
查看次数

向modernizr添加测试的正确方法是什么?

测试已存在于github repo中,但是当我尝试将其包含在我的页面上时,我收到错误,因此我不确定如何将其包含在我的文档中.在我的html <head>标签中,我链接了modernizr脚本,然后链接到我添加的测试:

<script src="js/modernizr-2.5.3-min.js"></script>
<script src="js/css-pointerevents.js"></script>
Run Code Online (Sandbox Code Playgroud)

CSS-pointerevents.js

当我加载页面时,我得到一个javascript错误:Uncaught TypeError: Object #<Object> has no method 'addTest'它必须是对css-pointervents.js(Modernizr.addTest('pointerevents', function(){)的第一行的引用

javascript graceful-degradation modernizr

2
推荐指数
1
解决办法
3501
查看次数

如何在Javascript不可用时显示内容,在javascript可用时隐藏它并且在任何一种情况下都不闪烁?

我有一个简单的发货选项表单,当有人从下拉列表中选择一个新选项时,我使用javascript自动提交表单.

为了支持没有javascript的浏览器,还有一个提交表单的按钮.使用javascript隐藏此按钮.

但是,这意味着我的按钮在短时间内可见,并且可能会导致闪烁,因为其余内容将被重新格式化.

任何人都可以建议一种创建按钮的方法,使其开始隐藏,但只有在javascript不可用时才可见?例如,从display:none开始; 并神奇地改为显示:block; 当且仅当没有javascript.

html javascript css progressive-enhancement graceful-degradation

1
推荐指数
1
解决办法
695
查看次数