一个完全基于Ajax的网站的利与弊是什么?

6
我曾经在某个地方(我忘了是哪里)看到过一个完全基于Ajax的网站,认为这是一种新颖有趣的尝试。我将一个旧网站放到了新服务器上,并使用了一点jQuery和Ajax技术,使整个网站可以在一个页面加载中运行。
我的问题是,这种方法有什么优点和(更可能的)缺点?
请注意-该网站通过一种聪明的链接函数工作。如果用户没有启用JavaScript,则所有内容都可以像其他网站一样正常加载。
更多细节--假设用户加载了网站的主页,然后登录。当他们登录时,登录框会淡出并显示用户信息。登录后,根据需要加载页面上的其他内容。如果他们点击链接,比如“文章”,主页上的一列会向上滑动并随即返回文章。如果他们点击主页,文章会向上滑动,主页内容会向下滑动。评论、查看个人资料、投票等操作都是通过ajax完成的。
这是一种不好的网页设计方法吗?如果是,为什么?
我愿意听取所有答案/意见。

你的意思是说,你已经为没有JavaScript的人编写了一个非Ajax版本的网站吗?因为这是支持禁用JavaScript的人的唯一方法。 - Zarel
3
@Zarel: 不是的。基本上,你要构建一个网站,确保它能在纯文本浏览器中正常工作,然后使用一层CSS样式使其外观漂亮,最后使用JavaScript覆盖默认的行为。这被称为渐进增强,它不仅关注禁用JavaScript的用户,还可以处理搜索引擎爬虫以及需要覆盖CSS以适应低视力或使用屏幕阅读器等辅助技术的用户。 - Stan Rogers
@Zarel Stan完全正确。 javascript覆盖了事物的正常功能。@Stan Rogers 很好的答案,这正是我所做的。 - Capt Otis
@Stan Rogers 这不正是我所说的吗?也就是说,我所谓的“非 Ajax 版本”就是你所称的“只是简单工作的网站”。你评论的其余部分只是不必要的轻蔑,假设我不理解渐进增强的概念。 - Zarel
不完全正确。网站中“只是工作”的元素被折叠到Ajax版本中(除了它们的UI表示形式)。并没有创建一个单独的应用程序;只是将基本站点合并到一个页面(或一组面向任务的页面)中。*如果您使用HTML文档片段作为传输层,则甚至不必在非模板环境中拆分表示形式;根据调用上下文更改MIME类型和包含即可。 - Stan Rogers
4个回答

9

在我看来,这并不是“好”或“坏”。这完全取决于网站是否满足要求。经常情况下,开发只针对 AJAX 网站的开发人员往往会忽略整个负面 SEO 影响问题。但是,如果网站被开发成支持渐进增强(或优雅降级,这取决于您的观点),而且据您所说您已经做到了,那么就没问题了。唯一需要准备的是当 AJAX 调用无法按预期完成时(确保处理超时、破损的链接等),以便用户不会卡在加载图标上。(实际上,在任何应用程序中都必须处理的东西)

有很多单页网站使用大量 JS 和 AJAX 来构建 UI,它们非常出色。具体而言,我知道有些 Web 设计师和 Web 应用程序开发团队的作品采用了这种方法。通常,该应用程序感觉有点像 Flash 应用程序,但无需特殊插件。


4
这是一种不错的网页设计方法,实际上,让网页更像桌面应用程序,同时保持对所有用户的功能性,是网页设计的圣杯。

1
直到您获得一个未启用JavaScript的用户。 - Canvas
直到你的“桌面”应用程序变得如此庞大,以至于下载这个怪物来管理“状态”的时间比用户前往那里执行一个简单任务所需的时间还要长。 - Jesse

0
我认为,只要你考虑到所有用户,包括移动设备、纯文本、低带宽和小屏幕尺寸,那么你就不会有问题。太多开发者只为他们巨大的19英寸屏幕和10Mbps而设计,这样一来,用户几乎没有错却被落下了。

1
屏幕尺寸与问题毫不相关。 - HoLyVieR
我确实很喜欢移动用户的观点。老实说,我不知道移动浏览器(如果有的话)是否支持ajax。 - Capt Otis
1
@CaptOtis 我可能来晚了... 但我想说,现在所有的(或者至少大部分)都能够进行ajax调用/请求(你可以随便称呼它:D) - Mischa

0

这取决于用户

我认为这与UX密切相关,当然也适用于编程解决方案的主题。

12年后问这个问题,全AJAX通常被称为“管理状态”。

根据我的经验:

  • 创建API插件平台
  • 为不同目的创建两个自己的CMS Web应用程序
  • 管理许多不同的WordPress.org网站以实现不同的目的
  • 同时管理自己的云服务器,用于PHP-AJAX和Node.js进行这些调用

…这取决于什么对用户最有效。

考虑以下情况:

  1. 用户是否会整天在此网站上点击,或者至少花费一个小时调整许多不同的选项和<form>输入?
  2. 还是许多用户会简短地访问,只执行少量快速任务?

状态管理/所有AJAX对于场景1来说绝对是最好的选择,Facebook和Gmail是最好的例子。

对于像博客这样的场景2,整页加载更有效率,特别是从搜索结果直接链接到页面。这可能适用于像亚马逊这样的网店,用户在Google上搜索一两个产品,然后离开。

从哲学上讲,我听说区别在于用户数量和流量,但我不完全同意。更多的是关于主要目标用户将进行多少点击和<form>发送


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接