3

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

  • 致力于将优雅降级合并到您现有的代码中(可能很棘手)或
  • 为非 js 用户开发一组不同的页面。

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

我也担心黑客攻击。例如,黑客进入启用 js 的版本,然后禁用他的 js。关于这一点有什么想法吗?我不太了解黑客攻击,但是如果我使用单独的版本,这会是一个安全问题吗?

提前致谢

4

3 回答 3

5

尽管它不适用于现有网站,但通常使用渐进增强范式更有用:构建网站,使其无需特殊附加组件即可工作,然后开始在此之上添加您的精彩。

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

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

于 2009-11-09T10:50:35.493 回答
2

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

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

于 2009-11-09T10:41:50.803 回答
0

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

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

于 2010-08-28T17:51:28.357 回答