【问题标题】:Pros and Cons of an all Ajax Site? [closed]全 Ajax 站点的优缺点? [关闭]
【发布时间】: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 类型和包含就足够了。

标签: ajax web


【解决方案1】:

IMO,这不是“坏”或“好”。这完全取决于网站是否满足要求。通常,在仅 AJAX 网站上工作的开发人员往往会错过整个负面的 SEO 影响问题。但是,如果该站点被开发为支持渐进式增强(或根据您的观点而优雅地降级),这听起来像是您拥有的,那么您就很好。唯一需要准备的是 AJAX 调用无法按预期完成的时候(确保您正在处理超时、断开的链接等),因此用户不会因为盯着加载图标而卡住。 (真的,在任何应用程序中都必须处理的那种东西。)

有很多单页网站使用繁重的 JS 和 AJAX 作为 UI,它们都很棒。具体来说,我知道使用这种方法的网页设计师和网络应用程序开发团队的投资组合网站。通常,该应用程序感觉有点像 Flash 应用程序,但不需要特殊的插件。

【讨论】:

    【解决方案2】:

    “这是一种糟糕的网页设计方法吗?如果是,为什么?”

    当然不是。事实上,让网页表现得更像桌面应用程序,同时保持对所有用户的功能,是网页设计的圣杯。

    【讨论】:

    • 直到你得到一个没有启用 javascript 的用户
    • 而且,直到您的“桌面”应用程序变得如此庞大,以至于下载怪物来管理“状态”所需的时间比完成用户去那里完成的一项简单任务所需的时间更长。
    【解决方案3】:

    我说,只要您考虑所有用户,即移动/纯文本/低带宽/小屏幕尺寸,那么您就可以了。太多的开发者只是为了他们巨大的 19 英寸屏幕和 10Mbps 的速度而这样做,以至于用户几乎没有自己的过错而被抛在后面。

    【讨论】:

    • 屏幕大小与问题完全无关。
    • 我确实喜欢移动用户的观点。老实说,我不知道哪些移动浏览器(如果有)可以支持 ajax。
    • @CaptOtis 我可能迟到了......但我想说的是,现在所有(或至少他们中的大多数)都能够进行 ajax 调用/请求(像你一样调用它想要:D)
    【解决方案4】:

    这取决于用户

    这与用户体验密切相关,恕我直言,虽然它当然是编程解决方案的主题。

    在提出这个问题 12 年后,All-AJAX 通常被称为“管理状态”。

    根据我的经验:

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

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

    考虑以下场景:

    1. 用户会整天点击这个网站还是至少花一个小时来调整许多不同的选项和<form> 输入?
    2. 或者许多用户会短暂访问以执行一些快速任务?

    目前为止,状态管理/全 AJAX 最适合方案 1,其中 Facebook 和 Gmail 是主要示例。

    对于场景 2,如博客,尤其是直接从搜索结果链接的页面,整​​个页面加载效率更高。这可能适用于像亚马逊这样的网络商店,用户在其中搜索谷歌以找到一两个产品,然后离开。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多