【问题标题】:Complex client-side logic -- better to move to the server side?复杂的客户端逻辑——更好地转移到服务器端?
【发布时间】:2009-06-22 16:09:50
【问题描述】:

我正在使用第三方搜索 API,我非常喜欢将几乎整个应用程序保留在浏览器端。 XML 完全用 javascript 消化,我正在使用 javascript 模板引擎动态呈现复杂的结果对象。很少有页面重新加载发生,并且有很多花哨的 javascript 正在进行。

将所有内容都保留在 javascript 端对我来说感觉很干净。这将使部署变得更加容易,并且很高兴将我的所有代码都放在一个地方。我正在尝试像使用 Java 编码一样严格地使用 javascript 进行编码,到目前为止,一切似乎都运行良好。我正在努力采用 TDD 风格,使用 YUI 测试,并且我乐观地认为这将使不可避免的跨浏览器错误更容易捕获和修复。代码量不算小,但也不算太差,我计划在部署之前将其缩小,这应该会减少到现在的 2/3 左右。

有没有我没有考虑到的缺点?还有其他前端应用程序逻辑的支持者吗?

【问题讨论】:

    标签: javascript frontend


    【解决方案1】:

    很少有页面重新加载发生,并且有很多花哨的 javascript 发生。

    过度依赖 JavaScript 有一个很大的缺点。请记住,无论何时设计 Web 应用程序,您都应该以用户没有启用 JavaScript 为前提 - 尽管这是少数,但仍有很多用户没有启用 JavaScript无论出于何种原因启用,并且如果您的应用程序在其基本操作中过于依赖 JavaScript,那么禁用 JavaScript 的用户将无法访问它。

    每当我编写具有 JavaScript 或 AJAX 功能的页面时,我总是确保有第二种显示或提交信息的方式,以防 JavaScript 在用户浏览器上被关闭。当然,这对于美学来说通常不是必需的——当单击并更改页面时沿菜单栏滑动的菜单项不会影响页面的核心功能,如果 JavaScript 被关闭并且它们只是像静态链接一样起作用;但是对于输入数据和显示结果等核心功能,您应该确保提供在未启用 JavaScript 时使用的备份方法。

    【讨论】:

    • 好主意。如果禁用了 javascript,客户端的站点将根本无法运行,所以在这种特殊情况下,我并不担心排除非 js 人员。
    • 这就是我的观点 - 通过这样设计您的网站,您可以有效地阻止那群人。
    【解决方案2】:

    您应该仅在 AJAX 真正改善用户体验时才使用它。当琐碎的功能不必要地需要 JS 时,这是非常烦人的。我希望(不知道您的应用是否属于这种情况)能够在没有 JS 的情况下输入搜索、获取结果并翻阅结果。

    AJAX 分页或搜索优化等“附加功能”没有任何问题。但无论哪种方式,必需品都应该在那里。

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2012-07-13
      相关资源
      最近更新 更多