标签: graceful-degradation

Web应用程序领域之外的优雅降级:问题有多重要?

为长篇介绍道歉 - 只是试图适当地设置场景以避免模棱两可和混乱.

Web应用程序已从基于浏览器的基于服务器端逻辑的接口变为基于浏览器的完全应用程序,而对服务器端逻辑的需求最小.可以通过识别清晰的Web应用程序来描述这种演变.

让我们暂时考虑两代:ajax之前和之后.当然还有其他因素,例如与CSS支持和访问控制标题有关的因素,但让我们从简单开始.

从无风格的无JavaScript简单系统开始,添加优雅降级的增强层并使用ajax包装,高响应性的现代应用程序完成是一项具有挑战性且容易出错的任务.这绝非易事.

对于Web应用程序可能看起来属于哪一代,取决于访问应用程序的方式.如果通过Lynx和最新一代应用程序通过FireFox 3.1访问,同样的Web应用程序似乎是第一代应用程序,中间有几个级别,具体取决于用于访问应用程序的用户代理.

根据用户代理的功能创建一个优雅降级的Web应用程序的问题,其中创建的利用当前浏览器功能的东西将恢复到大约十五年前面对Lynx时创建的东西的功能,这是非常困难的.

我无法想象桌面应用程序在操作环境中会出现这种差异.

能够利用Vista中的功能的单个可执行文件(与一组特定于操作系统的变体相对)在XP下运行时以及缺少某些Vista功能时可以很好地应对.为了降低与Web应用程序相当的距离,当在仅限命令行的环境(如DOS)中运行时,相同的桌面应用程序仍然必须运行,尽管不那么花哨.

在Lynx下运行它,它是第一代Web应用程序.在FireFox 3.1下运行相同,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会认为它具有挑战性,棘手但可行.

在DOS下运行它,它是一个命令行应用程序.在Vista下运行它,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会觉得它很疯狂.或者你呢?

桌面应用程序在操作环境中是否会像Web应用程序那样面临如此广泛的差异?

这个问题(方差的广度,而不是方差本身)是Web应用程序域所特有的,还是可以在桌面开发中找到?

progressive-enhancement graceful-degradation

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

在Python中优雅地降级酸洗

(你可以在某些背景下阅读这个问题)

我希望有一种优雅降级的方法来在Python中挑选对象.

当腌制一个对象时,让我们把它称为主对象,有时候Pickler引发一个异常,因为它不能腌制主对象的某个子对象.例如,我经常遇到的错误是"无法腌制模块对象".那是因为我从主对象引用了一个模块.

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

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

有这样的事吗?有谁知道如何处理这个问题?


(1)一个问题是模块可能正在引用其中的其他模块.

python graceful-degradation pickle

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

优雅关闭asp.net核心

遇到有关正常关闭 asp.net 核心应用程序的非常过时的信息,有人可以填写更新的信息。

用例:我想在应用程序退出时向 consul 注销。

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((host, config) =>
        {
        })
        .UseStartup<Service>();
Run Code Online (Sandbox Code Playgroud)

graceful-degradation asp.net-core

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

Silverlight降级为html

我有兴趣创建一个完全在silverlight(个人原因)的网站,但我不希望那些尚未拥有silverlight(很多人)的人必须安装一个插件才能查看我的网站.我倾向于的解决方案是从网站的平面html/css版本开始,并仅向已安装它的人提供silverlight版本.

我的问题是:

我的推理是错误的吗?有没有更好的方法来解决这个问题.什么是避免在两个版本的网站上复制内容的最佳方法.

silverlight accessibility datasource graceful-degradation

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

在iPhone和iPad上优雅地降低ContentEditable

令我沮丧的是,我发现该contentEditable=true属性在iPhone或iPad上无法正常工作.

有没有办法优雅降级contentEditable div而不诉诸textarea并在iPhone或iPad上失去所有丰富的DHTML格式优势?

iphone graceful-degradation contenteditable ipad

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

CSS3动画的Javascript降级解决方案

我一直在为iPad应用程序创建一些小型胖客户端JavaScript应用程序,它们在UIWebview中加载相关应用程序.我现在正在使用跨浏览器,需要使用JavaScript为CSS动画和过渡添加一些后备.

我的webkit特定实现使用CSS类用于所有动画/转换,其中开始和结束状态在设计时已知,使用javascript中的add/remove类并使用相关的webkitTransitionEnd/webkitAnimationEnd事件.

对于"动态"过渡,我有一个简单的"动画"功能,它只是将样式属性应用于相关元素.

我想保留内部API,通过简单的添加/删除类等,尽可能地将转换应用到当前实现.我通常有一个应用程序的CSS和js文件(都缩小了).

所以有几个问题/点我会感激任何输入:

  1. IE7/8问题 - IE9.js

  2. 动态添加供应商特定的前缀 - 到目前为止找到'jquery.css3finalize'.

  3. 转换到类:'jquery.animateToClass' - 似乎每次应用类时都会搜索样式表 - 是否应该在进一步的查找中缓存相关的类?这是缓慢的/资源饥饿的吗?

  4. 对于'@keyframe'动画:我想要一个javascript对象'表示'每个CSS3动画的关键帧.因此,将类传递给'doAnimationWithClass'函数将使用普通的css3动画(如果在浏览器中可用),但如果不是,它会将'对象版本'传递给使用css3过渡(如果可用)链接每个关键帧过渡的函数或jQuery.animate(或等效的),最终得出相同的结果.

例如:

CSS:

@-webkit-keyframes an-animation {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

.an-animation {
  -webkit-animation-name: an-animation;
  -webkit-animation-duration: 1s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: 2;
}
Run Code Online (Sandbox Code Playgroud)

JS:

var animations = {
    an-animation: {
      keyframes: [
      { 
        duration: '',
        timing: 'linear',
        props: {
          opacity: 0
        }
      },
      { 
        duration: '0.5s',
        timing: 'linear',
        props: {
          opacity: 1
        }
      }, …
Run Code Online (Sandbox Code Playgroud)

javascript animation cross-browser graceful-degradation css3

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

使用HTML5元素/ ARIA角色的首选技术

因此,这是我不时思考的一个小问题。大约一两年来,我一直对使用HTML5元素的最佳方法感到好奇。

我看到的最常见的技术-使用诸如页眉,页脚,节之类的元素以及类和ARIA角色。将html5shiv.js用于较旧的浏览器。

这更多地与适度降级而不是渐进增强相结合。如果在较旧的移动/桌面浏览器中未启用JS或根本不使用JS,则我们将无法对仅使用HTML5元素构建的布局进行样式设置。

我见过的另一种方法是通过渐进增强来进行排列,并且不依赖于在较旧的浏览器中启用JS来使布局正常工作。我刚刚与Josh Clark [Global Moxie]谈过此事。他们在m中使用了这种方法。版本的《人物》杂志。http://www.people.com/people/mobile/home/他们使用HTML5元素来帮助概述文档和div的语义以及样式类。没有样式依赖于HTML5元素,例如页眉,页脚,aside,section。

我的问题之一是,如果已经在div上设置了ARIA角色,是否在div / span周围放置HTML5元素以使文档标记更好地轮廓是否有益?除了“成为语义”之外,这还有什么好处?

如果在用于样式的div周围添加HTML5元素,将ARIA角色从div移到HTML5元素是否有益?我以为会,但很想获得有关此技术的更多反馈。

html5 progressive-enhancement graceful-degradation wai-aria semantics

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

禁用 Javascript 的 Gatsby 静态站点

是否可以使用 Gatsby 生成可以在浏览器中禁用 Javascript 的情况下查看的静态站点?

我听说 Gatsby 网站可以通过这种方式访问​​,但我尝试了各种 Gatsby starter,包括gatsby-starter-defaultgatsby-advanced-starter,所有这些都只会在禁用 Javascript 时显示索引页面。链接点击返回白屏。

我只是在这里寻找一些优雅的降级 - 我只需要渲染基本的页面和图像,仅此而已。

javascript progressive-enhancement graceful-degradation reactjs gatsby

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

Javascript优雅降级

你好,

这看起来不错:

<a href="directlinktopurchasepage" target="_blank" onclick="return loadBuyPopup()">Buy Now</a>

function loadBuyPopup() {
 //do something
 return false;
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望弹出窗口加载,但只是让JS失败(即它可能加载缓慢而用户匆忙),然后它应该仍然允许用户使用丑陋的页面购买.

这会在所有浏览器中工作还是我遗漏了什么?

javascript graceful-degradation

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

响应性,透明的CSS图像标题,优雅降级?

在图像上创建响应性,透明的CSS字幕的正确方法是什么 - 在旧浏览器中优雅地降级?

我想要实现:

  • 居中的垂直列图像
  • 图像的高度和宽度相等
  • 每个图像都有一个应该居中的标题
  • 标题应具有透明背景
  • 如果背景在不支持透明度的旧浏览器中变黑,那将会很好

如果你看看这个小提琴的例子,那显然有很多错误.

HTML5的基本前提是:

<section>
    <figure>
        <img src="1.jpg">
        <figcaption>Caption 1</figcaption>
    </figure>

    <figure>
        <img src="2.jpg">
        <figcaption>Caption 2</figcaption>
    </figure>

    <figure>
        <img src="3.jpg">
        <figcaption>Caption 3</figcaption>
    </figure>
</section>
Run Code Online (Sandbox Code Playgroud)

但是CSS3代码是我们遇到问题的地方.它甚至是正确的方法吗?我得到它进行一些微调(不包括在内),但无论如何,微调似乎对我没有语义意义.

例如,结果如下:

在此输入图像描述

我觉得CSS在很多层面都是错误的(双关语).

html5 image graceful-degradation css3 responsive-design

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