【问题标题】:How much client-side programming is needed when doing server-side programming?做服务器端编程需要多少客户端编程?
【发布时间】:2011-03-16 23:12:27
【问题描述】:

我刚刚开始学习 Web 开发,但我对投资什么感到很困惑。我听说服务器端代码会转换为客户端代码。因此,如果您有一个 .aspx 文件,它将被转换为 HTML/CSS/JavaScript。我有将后三种技术放入一个相当枯燥的文本文件并由网络浏览器呈现的经验。我的问题是在服务器端编程时我需要做多少 HTML/CSS/Javascript 编码?换句话说,有人可以纯粹在服务器端使用 ASP.NET 程序,而不必为客户端编写代码吗?当然,我不关心服务器端被翻译成客户端,但我想知道客户端编程是否需要明确地完成以及到什么程度。

【问题讨论】:

  • 这太模糊了,无法按书面回答。 “Web 开发”只是说明它是如何部署的,几乎可以指任何事情。你是在写下一个谷歌地图,还是只是一个 Craigslist?

标签: javascript asp.net html css


【解决方案1】:

您将想要学习自己进行客户端编程,这是非常值得的投资。为您“为您”进行客户端编程的框架可能会或可能不会做得很好,但是在某些时候,您将不得不对其进行调试,弄清楚它为什么会这样做以及这是错误还是错误误解等。与其在黑暗中跌跌撞撞,不如花一些时间学习客户端技术和技巧,这样您就可以了解框架正在为您生成什么,这样您就可以通过准确来产生更好的结果em> 您在客户端、服务器以及它们之间的接口中的意图。

例如:我answered a question earlier关于客户端上的按钮如何使浏览器在用户单击它时打开“另存为”对话框,有问题的文件是自定义生成的,不会撕裂在按钮所在的页面下方。这不一定是一个巨大的边缘案例,允许用户下载自定义生成的 PDF(比如说)的方法并不罕见,并且可以增强用户体验有用。如果不需要 Flash 或类似的东西,您将很难优雅地做到这一点,并提供高质量的用户体验,而不知道客户端上发生了什么、服务器上发生了什么以及如何让这两个部分交换相关信息来创造你想要创造的体验。

【讨论】:

    【解决方案2】:

    您将不得不进行一些客户端编程。各种框架只能为您生成这么多,在某些情况下,您无论如何都希望覆盖它们生成的内容。

    在不知道你想做什么的情况下,我不能说你需要做多少和什么类型的编码。

    【讨论】:

      【解决方案3】:

      您说您听说服务器端代码转换为客户端代码。这有点误导;服务器端代码可以生成由客户端解释的东西,但它本身并不是翻译的。为了编写服务器端代码,您仍然需要了解 HTML 和 CSS。 JavaScript 通常不是必需的。

      例如,如果您正在做一个待办事项列表应用程序,所有服务器端,您可能有类似这样的代码:(注意,这是 PHP;我不知道如何使用 ASP.NET)

      <h1>To-do list</h1>
      <ul>
      <?php foreach($items as $item) { ?>
          <li><?php echo htmlentities($item); ?></li>
      <?php } ?>
      </ul>
      

      如果$items 是“牛奶”和“面包”的数组,那么它可能会被处理成这样:

      <h1>To-do list</h1>
      <ul>
          <li>milk</li>
          <li>bread</li>
      </ul>
      

      ...但这通常不会被视为翻译它。因此,要回答您的问题,是的,您需要了解一些客户端知识才能执行服务器端代码。

      【讨论】:

        【解决方案4】:

        客户端编程的数量会因您的特定项目而异。不过,以我个人的经验,你可以在没有大量 JavaScript 的情况下摆脱困境。很有可能您仍然希望自己编写 CSS,了解 HTML 会很有帮助(.aspx 页面包含 HTML 和特殊 ASP 标签的组合)。

        作为一个例子,我在工作中维护了一个(相当简单,几千个 LOC)ASP 站点,其中唯一的自定义 JavaScript 是一个确认对话框(甚至可能没有必要)。我们使用自己的样式表,但并不是特别复杂。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-19
          • 2012-10-23
          相关资源
          最近更新 更多