客户端-服务器开发人员在理解 Web 应用程序/开发方面面临哪些障碍? [关闭]

Posted

技术标签:

【中文标题】客户端-服务器开发人员在理解 Web 应用程序/开发方面面临哪些障碍? [关闭]【英文标题】:What are some of the barriers client-server developers face to understand Web applications/development? [closed] 【发布时间】:2011-09-09 17:03:52 【问题描述】:

你们是否愿意解释一下客户端-服务器程序员面临(必须克服)哪些困难才能理解(并能够转向)Web 应用程序编程?

想想一个已经编写 Windows 窗体客户端-服务器数据库应用程序至少 10 年的人。

【问题讨论】:

【参考方案1】:

    HTTP 的本质是服务器不会坐在那里等待客户端的响应。它不能。 (ASP.net 可以做到,但这是框架提供的一种错觉/抽象。证据:If IsPostBack。)每个 HTTP 请求都是相互独立的,因此您必须在每个请求中包含足够的信息来提醒服务器什么它在做。会话 cookie 在这里有点帮助,但要点是,一旦您需要输入,一切都会停止——下一个请求会重新开始。

    您在胖客户端中所做的大部分事情现在都将在 Web 服务器上完成。也就是说,一台服务器(或两台,如果你也算上数据库服务器)正在完成大部分/所有繁重的工作。那个在胖客户端上运行的慢得令人尴尬的解决方案现在正在耗尽所有用户之间共享的 CPU 周期。将性能和可扩展性作为次要目标(在让东西正常工作之后)。

    应用程序的 UI 不再由您直接控制(除非您想成为笨蛋并需要 IE6,在这种情况下您不会长期开发 Web 应用程序)。您将需要在许多不同的浏览器中进行测试(至少是最新版本的 FF 和 Chrome,以及 IE 的 7-9 版本。如果可能的话,还有 Safari/Mac。如果您计划支持手机浏览器,则更多)。每个人都有自己的怪癖。你会想要坚持必须工作的东西的最低公分母,并且只使用浏览器怪癖来获得额外的刺激。并且不要在每个浏览器中尝试像素完美的一致性。这种方式很疯狂,特别是如果您必须支持旧版本的 IE、手机等。而是尝试使用足够灵活的布局,以便小的渲染差异不是什么大问题。

    几乎按照定义,您有时会同时为两种不同的环境(浏览器和服务器)使用 3 种不同的语言(htmljavascript 和您的服务器端语言)。您需要始终了解您的代码将在何时何地运行,以及它在那里时会有哪些限制。服务器代码和客户端代码之间有一道墙,默认情况下它们不共享变量。如果需要,您需要提供一种方法。

【讨论】:

以上是关于客户端-服务器开发人员在理解 Web 应用程序/开发方面面临哪些障碍? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

1. 使用 Blazor 生成 Web 应用

websocket服务端开发

Web开发人员需知的Web缓存知识

JSP笔记:JSP与Servlet在理解

三分钟轻松了解Spring框架基础知识

在理解自动布局方面需要帮助