如何使用Javascript以外的语言操作DOM?

时间:2017-05-01 09:54:01

标签: javascript php html css

所以我一直想知道如何在Javascript和PHP以外的语言中操作DOM。我总是可以在一个HTML文件中使用Javascript和PHP以及其他HTML和CSS代码。

类似地,在Javascript中有多种方法,例如document.getElemenyById()等。在PHP中,基本上它是超文本预处理器,因此它通过服务器自动呈现HTML,这又可以用于DOM操作。 / p>

其他语言怎么样?我们可以用它们来构建网络吗?或者具体来说,做一些像HTML和CSS操作的事情。让我们说比如Python或C#。我怎样才能像JS和PHP一样使用它们?

2 个答案:

答案 0 :(得分:2)

DOM工作有两个阶段。 第一阶段是服务器渲染。当PHP引擎接收模板(混合HTML,PHP)和数据并将有效的HTML输出到浏览器时。在此阶段,您可以构建将由浏览器解析为DOM树的 HTML 。您不使用DOM,而是使用模板的纯文本。

第二阶段是Javascript评估。浏览器解析并运行JS,这个JS可以访问DOM树。

第一阶段可以使用服务器上运行的任何语言完成。您可以使用c#模板,python模板,转到模板,甚至是javascript。所有模板引擎只进行模板(文本)和数据,并提供可以是有效HTML的文本输出。

第二阶段仅适用于JS,因为浏览器仅适用于JS。有一些尝试将其他语言带到前端(如Dart),但都失败了。但你有一些选择。现有语言有许多可以针对JS的编译器。例如,clojruescript用于clojure,bucklescript用于ocaml,gopherjs用于go和其他。此外,还有一堆为此目的而创建的语言(编译为JS):purescript,elm,typescript等。 现代浏览器可以使用webassembly二进制包。它与JS不同,但也无法访问DOM。

答案 1 :(得分:1)

你在这里提出的真正问题是:

我们是否可以使用像C#或python这样的语言进行DOM操作,比如JS?

简单来说,答案是否定的。但是如果你使用任何类型的解析器,你会感觉你在使用像Python这样的python,但是在浏览器上它只会是HTML。 相反,我会说......标记语言(前端语言)和服务器端语言之间存在很大差异。

HTML用作标记以在网页上显示某些内容。您可以使用一些模板,但最终将再次编译为HTML。 现在来了JS的角色,无论在网页上创建了什么元素,Javascript都有权对它们执行操作/操作。这称为DOM操作,只能通过某种前端语言实现。目前我们只有Javascript根据我的知识(如果我错了,请有人纠正我)

现在出现了C#,python或PHP的角色。这些语言适用于后端作业。您从前端发送的任何内容都将在后端处理,这些语言用于这些目的,因此,通过C#进行DOM操作是一个很大的问题。你需要javascript(jQuery或其他库)。

谢谢, 希望它有所帮助。