问题标签 [progressive-enhancement]

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 投票
8 回答
2374 浏览

ajax - 什么是渐进增强?

Jeff 在谈到使用 JQuery 编写 stackoverflow 时提到了“渐进增强”的概念。

在快速谷歌之后,我发现了一些关于它的高级讨论。

任何人都可以推荐一个开始作为程序员的好地方。

具体来说,我一直在用 PHP 编写 Web 应用程序,并希望使用 YUI 来改进我正在编写的页面,但其中很多似乎都非常基于 JavaScript,大部分工作都是使用 JavaScript 完成的。对我来说,这似乎有点矫枉过正,因为在没有 Javascript 的情况下查看该网站可能会破坏大部分内容。

任何人都有一些开始使用这个想法的好地方,我并不关心语言。

理想情况下,我想看看您是如何首先开始创建静态 HTML,然后将 YUI(或任何 Ajax 框架)添加到其中以便获得更丰富的客户端的好处?

0 投票
5 回答
458 浏览

ajax - How important do you think Progressive Enhancement is?

Progressive Enhancement is a web development methodology that not only allows greater portability and accessibility but in my opinion, makes the development process easier.

What I want is to know what the rest of the community think of this approach.

In particular: What do you believe is the minimum set of technologies that a web application should support?

0 投票
6 回答
620 浏览

javascript - 关于如何使就地编辑可降解的任何想法?

我目前正在为 MooTools 编写一个就地编辑脚本,但对于如何在没有 JavaScript 的情况下使其优雅地降级同时仍然具有一些功能,我感到有些困惑。我想以某种方式使用渐进增强。我不是在寻找代码,而是更多关于如何处理这种情况的概念。如果您有任何想法或知道任何优雅降级的就地编辑脚本,请分享。

0 投票
3 回答
222 浏览

php - 有谁知道可以处理 Flash/Flex 内容的渐进增强的 php 框架?

好的,我在这里松散地使用术语“渐进增强”,但基本上我有一个基于 Flash 的网站,它支持深度链接并动态加载内容 - 我想做的是为那些提供替代内容(文本)要么没有 Flash,要么用于搜索引擎机器人。因此,对于使用 flash 的用户,他们将导航到:

他们会看到一个可以导航到“ specific_page.”的Flash站点。那些没有 flash 的人会specific_page在替代内容部分看到以文本形式呈现的“”。

基本上,我会使用 php/mysql 创建一个后端来处理所有这些,因为 swf 也使用动态数据。问题是,是否存在已经存在的东西?

0 投票
5 回答
13295 浏览

asp.net - 检测何时在 ASP.NET 中禁用 JavaScript

在 ASP.NET Web 控件的 Render 方法中,我需要根据客户端浏览器上是否启用或禁用 JavaScript 来更改 Html 的输出,

有谁知道正确的咒语来解决这个问题?

0 投票
3 回答
255 浏览

graceful-degradation - Web 应用程序域外的优雅降级:问题有多严重?

为冗长的介绍道歉 - 只是试图适当地设置场景以避免歧义和混乱。

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

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

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

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

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

我无法想象一个桌面应用程序会面临这样的操作环境变化。

能够利用 Vista 中的功能的单个可执行文件(相对于一组特定于操作系统的变体)在 XP 下运行和缺少某些 Vista 功能时可能会很好地应对。要在与 Web 应用程序相当的距离内降级,相同的桌面应用程序在 DOS 等纯命令行环境中运行时仍必须运行,尽管方式不那么花哨。

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

在 DOS 下运行它,它是一个命令行应用程序。在 Vista 下运行它,它是一个花哨、闪亮的现代网络应用程序。如果遇到这样的问题,你会认为它很疯狂。或者你会吗?

桌面应用程序是否曾经像 Web 应用程序那样在操作环境中面临如此广泛的变化?

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

0 投票
3 回答
135 浏览

usability - 我如何知道用户的带宽以提供我的 Web 应用程序的最佳版本?

我们正在开发一个具有异构用户群的 Web 应用程序。此外,我们必须提供视觉上吸引人的体验。因此,我想知道是否有任何方法可以以这种方式获得用户带宽的估计值,以便我们可以决定是提供给定版本还是另一个版本。

还是我应该瞄准最低分母?

无论涉及何种技术:对于这种情况,我与平台无关(例如,用于估计用户能力的 flash 小程序就可以了)。我只是想听听你的建议。

0 投票
3 回答
177 浏览

javascript - 服务器端的渐进增强?

目前,我们页面上的许多链接都在页面加载时更改href="javascript:void(0);",但如果您不耐烦(就像大多数用户一样),您可以在页面加载之前单击链接并登陆更笨重、非 JavaScript、非 ajax 的页面。

这些天我在考虑渐进增强,我预测我们的大多数用户都将启用 javascript(还没有数据,我们还没有发布 alpha)

生成一些指示用户已为会话启用了 javascript,然后提供假定 javascript 的页面是不是一个坏主意?(即让服务器href="javascript:void(0);"从一开始就放置)

0 投票
4 回答
477 浏览

javascript - 渐进增强,页面未完全加载时的行为

我正在使用完全在 jQuery 中实现的渐进增强来开发网站。

例如,我正在动态添加 onclick 事件处理程序以锚定标签以使用 SoundManager “内联”播放链接的 MP3 文件,并通过 $(document).ready(function()) 弹出 Youtube 播放器的 Youtube 链接。

但是,如果用户在页面加载时单击它们,他们仍然会获得非增强版本。

我考虑过隐藏相关的东西(通过显示:无,或类似的东西)并在加载时显示它,或者放置一个模式“加载”对话框,但听起来都像黑客。

有更好的想法吗?我觉得我在这里遗漏了一些完全明显的东西。

问候,

亚历克斯

0 投票
5 回答
809 浏览

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

我有一个用于运输选项的简单表单,当有人从下拉列表中选择新选项时,我正在使用 javascript 自动提交表单。

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

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

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