【问题标题】:How do web development frameworks work exactly? [closed]Web 开发框架是如何工作的? [关闭]
【发布时间】:2022-01-23 17:12:45
【问题描述】:

据我(可能有缺陷)所知,网站的前端是用 HTML、CSS 和 JavaScript 构建的,但我听到很多关于使用 Django (Python)、ASP.NET (C#)、Ruby 等框架的讨论在 Rails (Ruby)、Spring (Java) 等...

这些框架如何运作?起初我认为它们是后端框架,但显然 Django 可用于帮助处理 HTML 格式等。我认为这些事情只有 JavaScript 才有可能?我了解如何使用像 React 或 Angular 这样的框架,因为它们在 JavaScript 上运行,但是这些其他框架和语言如何工作?它们是转译成 JS 还是什么的?

【问题讨论】:

  • HTML 格式化是(大多数)Web 服务器所做的事情。他们需要为浏览器生成一个 HTML 页面,因此 Web 框架通常使用模板语言来使这些页面的格式化更加方便。
  • 相关:Web Framework Structure?看起来很相似。
  • “起初我以为它们是后端框架” - 确实如此。 “但显然 Django 可用于帮助处理 HTML 格式等” - 服务器端代码可以做各种事情,最终导致将客户端代码输出到客户端。

标签: javascript django frameworks frontend


【解决方案1】:

实际上并非所有框架都使用 JavaScript 进行格式化。

正如 William 在 cmets 中所说,大多数框架都有一个 template engine(它使用 template language)。例如,Symfony 使用 Twig,它不使用 JavaScript。话虽如此,它接受 JavaScript 脚​​本,并且您确实认为 JS 是最广泛使用的 Web 前端语言。另请注意,JS 现在也用于后端 (NodeJS)。

这些template engines 实际上是一个“工具”,可以将数据模型的输出打印到文档中(在这些情况下,是一个 html 页面),根据每个给定案例的特性自动修改这些页面的过程。 (例如,早在 15 世纪发明印刷机时,他们必须更改每一页的字符,但可能要重新使用页眉或页脚)。

这意味着他们会查看您拥有的数据(在后端),使用该模板的静态 HTML,然后更改动态的 HTML,最后将代码输出到客户端。据我了解,如果我错了,请有人纠正我,这意味着模板引擎仍在Server-Side 上运行,这是“进入”Client-Side 之前的最后一步。

因此,如果您使用的语言不是 JS,它使用的模板引擎不是基于 JS 的,并且您没有在项目中嵌入或添加 JS 代码,那么您将有效地拥有一个无 JS 的 Web 项目。 JavaScript 被大量用于修改 HTML,但正如您所见,它根本不是强制。如果是网页,我会说您只需要“转译”为 HTML,或者说,以 HTML 格式呈现您的数据。

如今的 Web 框架倾向于使用 MVCModel-View-Controller 设计模式 (Wikipedia),这可能会让您更容易理解 Front-endBack-endClient-side 的分离过程Server-side.

另外,您可能不知道的重要一点是,语言可以在客户端 (JavaScript) 或服务器端 (PHP) 上运行。不过,像 NodeJS 之类的一些改编可能会允许在另一端使用该语言。

【讨论】:

    猜你喜欢
    • 2013-06-16
    • 2016-02-29
    • 2010-11-22
    • 2010-09-16
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    相关资源
    最近更新 更多