【发布时间】:2022-05-11 17:27:39
【问题描述】:
所以我实际上在某个地方看到了一个完整的 ajax 站点(我忘记了在哪里),并认为这将是一些新的和有趣的尝试。我使用了我建立的旧站点并将其放在新服务器上。使用一点 jquery 和 ajax,我可以让整个网站在一个页面加载时工作。
我的问题是,这种方法有哪些优点和(更有可能)缺点?
请注意 - 该网站通过一个半巧妙的链接功能运作。如果用户没有启用 javascript,一切都会正常工作,新请求的页面会像在任何其他网站上一样加载。
更多细节——假设用户加载了网站的主页,然后登录。当他们登录时,登录框会消失并重新出现用户信息。页面上的其他内容在登录时根据需要加载。如果他们单击链接,比如说“文章”,主页上的一列会随着文章向上滑动并向下滑动。如果他们点击主页,文章会向上滑动,主页内容会向下滑动。发布 cmets、查看个人资料、对事物进行投票等都是通过 ajax 完成的。
这是一种糟糕的网页设计方法吗?如果有,为什么?
我对所有答案/意见持开放态度。
【问题讨论】:
-
您的意思是您为没有 JavaScript 的人编写了非 Ajax 版本的网站?因为这是支持禁用 JavaScript 的人的唯一方法。
-
@Zarel:不,不是。本质上,您构建了一个可以正常工作的网站,即使在纯文本浏览器中也是如此,然后使用一层 CSS 进行布局使其看起来很漂亮,然后使用 JavaScript 覆盖事物的默认行为。它被称为渐进增强,它不仅照顾禁用 JavaScript 的人,还处理搜索引擎爬虫以及需要覆盖 CSS 以降低视力或使用屏幕阅读器等辅助技术的人。
-
@Zarel Stan 完全正确。 javascript覆盖了事物的正常功能。 @Stan Rogers 不错的答案,这正是我所做的。
-
@Stan Rogers 这不正是我所说的吗?即,我所说的“非 Ajax 版本”就是您所说的“正常工作的网站”。假设我不理解渐进增强的概念,您的其余评论只是不必要的屈尊俯就。
-
不完全。 “正常工作”的网站元素被折叠到 Ajax 版本中(除了它们的 UI 表示*)。没有单独创建这样的应用程序;仅仅是将基本站点合并为一个页面(或一组面向任务的页面)。 *如果您使用 HTML 文档片段作为传输层,您甚至不必拆分表示(在非模板化环境中);根据调用上下文更改 MIME 类型和包含就足够了。