我开始更加关注如何让我的 javascript 和 ajax 优雅地降级。比较推荐哪个:

  • 致力将优雅的降解纳入现有代码(可能很棘手)或
  • 为非 js 用户开发一组不同的页面。

我倾向于不同的页面集,因为我觉得它更容易,并且我可以为每种用户类型(启用 js 或禁用 js)提供最佳的结果。你同意我的观点吗?如果不同意,你为什么不同意?

我还担心黑客攻击。例如,黑客获取启用 js 的版本,然后禁用他的 js。关于这一点有什么想法吗?我对黑客攻击了解不多,但是如果我使用单独的版本,这会成为安全问题吗?

提前致谢

有帮助吗?

解决方案

开发两组独立的页面,一组用于启用 JS,一组用于非 JS,显然是一项艰巨的工作,不仅在最初,而且随着应用程序的不断发展也是如此。如果这不会太困扰你,我认为这就是要走的路。我认为您对同页优雅降级有时非常棘手的看法是正确的。有时这只是因为布局:启用 JS 后,您可以简单地隐藏和显示元素,就像没有 JS 一样:所有东西都放在哪里?单独的页面集可以帮助保持页面结构更清晰。

关于黑客尝试:你永远、永远、永远不能依赖客户端 JavaScript 验证。所有内容都必须在服务器端进行检查(或重新检查),并且您的服务器端代码可能不会对用户输入做出任何假设。因此,我认为有人在使用应用程序时停用 JS 的情况是无关紧要的。尝试保持非 JS 和 JS 版本的预期用户输入一致,正确验证它,就可以了。

其他提示

虽然它不适用于现有站点,但通常使用 渐进增强 范例:构建网站,使其无需特殊附加组件即可运行,然后开始在此基础上添加您的精彩内容。

这样您就可以确保它从头开始工作,并且每个人(包括使用屏幕阅读器的人、关闭图像或样式表的人以及不使用 JavaScript 的人)都可以访问您的网站。

然而,对于现有站点,这将取决于 ajax 提供的功能。一般来说,您应该努力在禁用 js 的情况下镜像所有 ajax 功能。如果您的 js 版本中存在安全漏洞,那么非 js 版本中也可能存在安全漏洞。AJAX 无法访问任何无法通过普通 URL 访问的内容。

您可能想查看一下 jQuery Ajax. 。它可以让您优雅地将您的网站升级为功能齐全的 ajax 网站,而无需任何服务器端修改,因此一切仍然适用于禁用 JavaScript 的用户和搜索引擎。它还支持哈希,因此您的后退和前进按钮仍然有效。

它已在这两个网站上实施(我知道) http://wbhomes.com.auhttp://www.balupton.com

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top