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

javascript - 我应该如何使用 JavaScript 逐步增强此内容?

这个问题的背景是我正在做一个计算项目,其中涉及一些用于输入的下拉框,以及一个用户可以输入日期的文本输入。

我使用 YUI 来增强表单,因此日历输入使用YUI 日历小部件,下拉列表转换为输入的水平列表,用户只需单击一次即可选择任何输入,而不是单击两次下拉框(希望有意义,不知道如何解释清楚)

问题是,在我的项目的设计部分,我声明我将遵循渐进增强原则。但是,我正在努力确保没有 JavaScript 的用户能够查看所述页面上的下拉框/文本输入。

这不是因为我不一定知道如何,而是我尝试过的两种方法似乎并不令人满意。

方法 1 - 我尝试使用 YUI 隐藏文本框和下拉列表,这似乎是理想的解决方案,但是在加载页面时(尤其是第一次)有相当明显的延迟,文本框和下拉列表在哪里至少可见一秒钟。我在body标签结束之前包含了这个脚本,有没有什么方法可以用YUI在onload上运行它?那会有帮助吗?

方法 2 - 使用 noscript 标签。. . 但是我不愿意这样做,因为这将是一个简单的解决方案,但我已经阅读了关于 noscript 标签的各种坏事。

有没有办法使方法一起作用?或者有没有更好的方法可以做到这一点,我还没有遇到过?

0 投票
7 回答
5382 浏览

jquery - 让 jQuery AJAX 有一个非 javascript(非 ajax)后备?

我的最新项目已经完成了相当多的工作,但我意识到有一个问题:如果您没有支持 Javascript 的浏览器,则无法提交任何表单,因为每个表单都使用AJAX 提交它。

我对你们所有人的问题:我怎样才能实现某种“回退”,以便如果他们没有启用 Javascript,他们仍然可以提交表单。

目前,我在标题旁边有一个横幅,上面写着“为了获得最佳(以及“最佳”,我们的意思是“实际工作”)体验,请在您的浏览器中启用 Javascript。但这似乎不是最佳解决方案。

谢谢!

0 投票
3 回答
290 浏览

javascript - 如何在保持渐进增强的同时隐藏要使用 jquery 切换的元素

我能找到的所有答案都建议将 display:none 添加到 css ... 但是对于没有 javascript 的用户,他们永远不会看到该元素。

仍然会导致在页面加载期间出现和消失的元素,因为这些天页面在 DOM 完成之前开始呈现。

在身体的顶部似乎太hacky了。

0 投票
2 回答
338 浏览

javascript - 如何逐步增强国家和州选择字段?

我还没有看到任何网站正确地做到这一点......

如果我有两个选择字段countrystate,那么我会这样编码:

然后,我将根据国家/地区的选择使用 AJAX 填充州字段。

然而,这是逐渐增强的状态。不使用 Javascript 怎么办?以及应该如何增强它(如果前面的例子不是最好的方法)?

0 投票
2 回答
414 浏览

jquery - 使用 jquery .load 获取内容时覆盖

0 投票
3 回答
804 浏览

c# - 普通的旧 HTTP GET 使用
用 ASP.NET 标记

我有一个使用主页面的渐进增强构建的 WebForms 站点。显然,ASP.NET 默认注入标签,因此它可以管理回发。

我需要一种方法来执行以下操作

显然,.NET 正在用外部拦截请求并将其发回给自己。我可以用 JavaScript 做到这一点,但我会打破我网站的渐进增强策略。如果没有本质上构建一个 ASP.NET 服务器控件来管理重定向,这是不可能的吗?

谢谢马丁

0 投票
1 回答
182 浏览

jquery - 附加preventDefault;to .live('click', function( )

尝试添加时,我不断收到语法(function (e) { e.preventDefault; 错误

我不知道在使用时如何组合它.live,我知道它的东西真的很简单,但我就是不明白,任何帮助都非常感谢

0 投票
3 回答
698 浏览

java - Android的渐进增强?

在构建 Android apk 时是否可以使用渐进增强。我想构建一个可在 SDK 8 + 上使用的应用程序(姜饼是主要的 android 版本),并在可能的情况下添加新版本的功能。

我知道我可以获取 SDK 版本SDK_INT来做一些有条件的事情,但是当我使用更高版本中引入的功能时,eclipse 不会让我构建说我需要增加 min SDK 级别。
也许是我的 Web 开发背景导致我认为这是可能的,这可能根本不可能,流行的应用程序是否有针对不同 SDK 的不同版本(如 min8-max10、min11-max15)?Android Java 代码的渐进增强是否可行?

0 投票
2 回答
122 浏览

testing - 使用 Capybara 测试逐步增强的功能

我正在使用 Capybara 来测试逐渐增强的网站上的功能。假设我的功能是在位置层次结构中导航。当我们点击不同的位置时,非 JavaScript 版本涉及获取页面的新版本。增强的 javascript 版本打开隐藏元素,或通过 Ajax 加载新信息。

我首先为非 javascript 版本编写一个测试,它看起来像这样:

使用默认的机械化驱动程序,测试失败,我开发了功能,然后测试通过了。

然后我为 javascript 版本创建了一个相同的测试,用@javascript 标记。它使用 javascript 驱动程序运行测试,并且该测试通过,因为该功能已实现。(它通过非 js 流程运行)。但是,我希望 javascript 版本的测试在这一点上失败,因为该功能尚未使用 Javascript 增强。

所以我正在寻找一个好的策略来确定一个全新的页面是否来自服务器,并确保该功能的两个版本都有效。(我计划将此与 pushState 集成,因此不会对更改的 URL 进行测试)

0 投票
1 回答
138 浏览

javascript - 是否可以在关闭 JS 的情况下使 AJAX 网站可抓取并优雅地降级?

根据此规范,使 Googlebot 可抓取 AJAX 站点意味着您必须在其中使用 hashbang (#!) 链接,这意味着当 JS 关闭时它不会优雅地降级(或在打开时逐渐增强)。这可能意味着在这种情况下,可爬取性和优雅降级/渐进增强是相互排斥的。事实上是这样吗?有什么可以做的吗?

注意:为了透明起见,我会注意到 Pro Webmasters 网站上也有人问过这个问题,但从纯程序化的角度来看,我认为它也很有趣。