- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
要优雅地降级基于 JS 的 Web 应用程序,我应该遵循哪些一般准则?有这样的指南吗?是否有任何公共(public)页面可以作为好的/坏的例子?有什么常见的陷阱吗?
最佳答案
使用 progressive enhancement 创建您的应用程序而不是优雅的退化。这意味着首先您应该让您的应用程序在没有任何 Javascript 的情况下正常工作(因此,例如,您需要所有链接在服务器上都有相应的操作)。一旦成功,您就可以通过在其上添加 Javascript 和 AJAX 来增强您的应用程序。
显然,这不仅适用于 AJAX 调用,而且适用于所有 Javascript。例如,在我的一个应用程序中,我想为用户提供一种从范围中选择数字的方法。为此,我打算使用 Javascript 创建一个 slider 小部件,以便用户可以将 slider 移动到他们想要的数字。但是,为了让该页面在没有 Javascript 的情况下仍能正常工作,我从 <select>
开始。包含所有可能的值,并构建我的 slider 小部件以开始/在其之上工作 <select>
.这样,拥有可用/启用 Javascript 的用户将拥有更丰富的体验,但不可用/启用的用户仍然能够充分使用该应用程序。
资源:
关于javascript - 当 JS 关闭时,AJAX 应用程序可以优雅降级的策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752811/
是否可以将 Azure 云服务实例从“小型”虚拟机降级为“超小型”虚拟机? 到目前为止我尝试过的:- 将 Visual Studio 中的 VM 更改为“超小”- 构建了一个新包- 上传到门户网站-
几天前我更新了 Jenkins 。但是在当前的 Jenkins 版本中,存在一些烦人的 bug。是否可以降级 Jenkins 的版本,如果可以,怎么可能? 最佳答案 最近我也一直在努力降级 Jenki
我已经安装了 Android SDK 4.0.3,我想安装一个先行版本(例如 2.2),所以我应该卸载 4.0.3 版本吗? 怎么做? 最佳答案 只需在 Android SDK 管理器中安装所需的 S
最近我更新了我的 android 游戏,编辑 sqlite 数据库在我的表中添加新字段,更新后,我收到 4 个崩溃报告(其中 3 个来自同一设备,Samsung Galaxy S4) android.
思考:当活动服务出现性能问题以后,我们只能眼睁睁看着活动服务被压垮吗? 1、添加@HystrixCommand后,Hystrix是如何实现超时和降级功能? 1、 在某个方法上添加了@Hystrix
将 Magento 商店从企业版 1.10.1.1 降级到社区版 1.7.0.0 应遵循什么程序? 我做的步骤是: 备份 Magento EE 1.10.1.1 数据库 :) 将此数据库导入到一个名为
一个问题,因为我可以卸载并安装旧版本的 map 服务器,因为我导致大致以下错误,我认为是相同的版本 警告:[MapServer 错误]:msLoadSymbolSet():第一个标记必须是 SYMBO
如何降级我的 flutter 版本以避免空安全?我更新了,这个功能出现了,但我使用了一些包,比如徽章和 https,这些包没有更新为空安全,我得到了几个错误来运行我的代码。 我的pubspec: 环境
我已经为 Mysql 和 DBI 安装了 Perl 模块,但是由于我在当前版本中遇到的错误,我想将它们降级到旧版本。是否可以使用 cpan 将它们降级为旧版本?我该怎么做? 最佳答案 要强制安装特定版
我有一些关于 azure sql 升级/降级的问题。我发现的唯一信息是,要升级/降级,您必须导出 .bacpac 并将其导入到新的升级/降级服务器上。 当更新版本的 azure sql 可用时,Mic
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 5 年前。 Improve th
我是 Android 开发的新手,我想我可能犯了一个错误。我一直在我的 build.gradle 文件中使用 compileSdkVersion 25。但我希望我的应用程序支持 Android 4.1
我使用它,它在 webkit 浏览器上运行良好,在 firefox 上运行简单。但是 Opera 给出了奇怪的结果。 我正在使用的 CSS: color:@coreDarkBlue; backgrou
我需要打开一个文件,对其进行读取锁定,然后尝试获取写入锁定,但如果失败则保留读取锁定。 这在使用 fcntl 锁定的 POSIX 中效果很好。 在 Windows 中,我可以使用 LockFileEx
我已经安装了 Xamarin(Xamarin studio、Xamarin.Android)但是即使是最简单的项目构建也存在一些问题(只需创建新项目->构建->出现错误)。 经过一些谷歌搜索后,我发现
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我在尝试使用 Pyinstaller 时遇到错误。在做了一些研究之后,我认为该错误是由最新版本的 setuptools (19.3) 中的错误引起的。该修复程序似乎正在降级到 setuptools 版
我正在尝试使用 Angular 升级机制将我们的 ng1 项目升级到 ng2。实际上,我重写了一个组件,它提供了多个内容( Angular 为 1.5 的多重包含/插槽)。 我的问题是,它可以在一个组
我在 Ubuntu 服务器上本地托管 Gitlab。 在没有检查 Ubuntu 18.04 版本是否支持 Gitlab 的情况下,我刚刚安装了它。 现在我注意到我无法将我的 Gitlab 安装更新到最
假设 iOS 自动续订订阅提供对包含存储分配的服务的访问。有多个订阅级别,其允许的存储量各不相同。订阅者可能希望随着存储需求的变化而升级或降级其订阅。 StoreKit 文档向我展示了如何开始订阅,但
我是一名优秀的程序员,十分优秀!